React, Redux and the Rest API

WordCamp Denver 2016

Jason Bahl (@jasonbahl)

Who Am I?

  • Senior WordPress Engineer at Digital First Media
  • 7 years of WordPress development experience
  • I love WordPress & Open Source in general
  • Colorado native
  • First time public speaker...

What I'm here to talk about

  • How the web is evolving and new challenges with building for the modern web

     
  • How React, Redux and the WP Rest API can make it easier to overcome some of these challenges
     
  • Demo using React, Redux and the WP Rest API together

Evolution of the Web

As the web quickly evolves, there are new

expectations and inherent challenges to overcome

Evolution of the Web

Common Expectations of Web Developers

Design

Evolution of the Web

Common Expectations of Web Developers

Cross-Browser Support

Evolution of the Web

Common Expectations of Web Developers

Cross-Device / Screen-Size / Resolution Support

Evolution of the Web

Provide rich, interactive experiences

Common Expectations of Web Developers

Evolution of the Web

  • Reactive/Optimistic UI
  • Real Time Updates
  • Single Page Apps
  • Pre-fetching data
  • Web Components
  • Hot Code Reloading
  • SEO
  • API's
  • Async
  • Websockets
  • Server Side Rendering
  • Statefullness
  • Data Binding
  • Automation
  • Web Services
  • Something new tomorrow...

More Expectations of Web Developers

The Modern Web

Reactive and Stateful

The Modern Web

Stateless Web Flow

Reactive and Stateful

The Modern Web

Stateful Web Flow

Reactive and Stateful

The Modern Web

Reactive and Stateful

REACTIVE: showing a response to a stimulus.

 

STATE: the particular condition that someone or something is in at a specific time.

The Modern Web

Reactive and Stateful

The State of WordPress

(pun intended)

WordPress is "stateless"

The "state" is managed on the server,

and the "reaction" is a full page re-load

The State of WordPress

Stateless page request in WordPress

The State of WordPress

Managing state in the URL

The State of WordPress

Manage state in the DOM

The State of WordPress

State changes aren't easily accessible to the entire application, and AJAX still requires a tight coupling with WordPress

AJAX to the Rescue?

The State of WordPress

WordPress.com / Calypso is an evolution

of WordPress, not the evolution of WordPress

Decouple Interface from WordPress

The WordPress Rest API

http://v2.wp-api.org/

 

Access your WordPress site's data through an

easy-to-use HTTP REST API.

What is the WP Rest API?

  • Feature plugin that was partially merged to core in 2015
    • Content endpoints slated for core in version 4.7
  • Provides RESTful HTTP endpoints for reading and writing WordPress data in JSON format
{
  "name": "Post Status",
  "description": "WordPress News & Information for Web Professionals",
  "url": "https://poststatus.com",
  "home": "https://poststatus.com",
  "namespaces": [
    "wp/v2",
    "oembed/1.0",
    "jetpack/v4",
    "wc/v1",
    "yoast/v1"
  ],
  "authentication": [],
  "routes": {
    "/": {
      "namespace": "",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/"
      }
    },
    "/wp/v2": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "namespace": {
              "required": false,
              "default": "wp/v2"
            },
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2"
      }
    },
    "/wp/v2/posts": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "author": {
              "required": false,
              "default": [],
              "description": "Limit result set to posts assigned to specific authors."
            },
            "author_exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes posts assigned to specific authors."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "relevance",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to posts with a specific slug."
            },
            "status": {
              "required": false,
              "default": "publish",
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "trash",
                "auto-draft",
                "inherit",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived",
                "any"
              ],
              "description": "Limit result set to posts assigned a specific status; can be comma-delimited list of status types."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "categories": {
              "required": false,
              "default": [],
              "description": "Limit result set to all items that have the specified term assigned in the categories taxonomy."
            },
            "tags": {
              "required": false,
              "default": [],
              "description": "Limit result set to all items that have the specified term assigned in the tags taxonomy."
            },
            "sticky": {
              "required": false,
              "description": "Limit result set to items that are sticky."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "author": {
              "required": false,
              "description": "The id for the author of the object."
            },
            "excerpt": {
              "required": false,
              "description": "The excerpt for the object."
            },
            "featured_media": {
              "required": false,
              "description": "The id of the featured media for the object."
            },
            "comment_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not comments are open on the object."
            },
            "ping_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not the object can be pinged."
            },
            "format": {
              "required": false,
              "enum": [
                "standard",
                "aside",
                "chat",
                "gallery",
                "link",
                "image",
                "quote",
                "status",
                "video",
                "audio"
              ],
              "description": "The format for the object."
            },
            "sticky": {
              "required": false,
              "description": "Whether or not the object should be treated as sticky."
            },
            "password": {
              "required": false,
              "description": "A password to protect access to the content and excerpt."
            },
            "categories": {
              "required": false,
              "description": "The terms assigned to the object in the category taxonomy."
            },
            "tags": {
              "required": false,
              "description": "The terms assigned to the object in the post_tag taxonomy."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/posts"
      }
    },
    "/wp/v2/posts/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "password": {
              "required": false,
              "description": "The password for the post if it is password protected."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "author": {
              "required": false,
              "description": "The id for the author of the object."
            },
            "excerpt": {
              "required": false,
              "description": "The excerpt for the object."
            },
            "featured_media": {
              "required": false,
              "description": "The id of the featured media for the object."
            },
            "comment_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not comments are open on the object."
            },
            "ping_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not the object can be pinged."
            },
            "format": {
              "required": false,
              "enum": [
                "standard",
                "aside",
                "chat",
                "gallery",
                "link",
                "image",
                "quote",
                "status",
                "video",
                "audio"
              ],
              "description": "The format for the object."
            },
            "sticky": {
              "required": false,
              "description": "Whether or not the object should be treated as sticky."
            },
            "password": {
              "required": false,
              "description": "A password to protect access to the content and excerpt."
            },
            "categories": {
              "required": false,
              "description": "The terms assigned to the object in the category taxonomy."
            },
            "tags": {
              "required": false,
              "description": "The terms assigned to the object in the post_tag taxonomy."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            }
          }
        }
      ]
    },
    "/wp/v2/posts/(?P<parent>[\\d]+)/revisions": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wp/v2/posts/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": []
        }
      ]
    },
    "/wp/v2/pages": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "author": {
              "required": false,
              "default": [],
              "description": "Limit result set to posts assigned to specific authors."
            },
            "author_exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes posts assigned to specific authors."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "menu_order": {
              "required": false,
              "description": "Limit result set to resources with a specific menu_order value."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "relevance",
                "id",
                "include",
                "title",
                "slug",
                "menu_order"
              ],
              "description": "Sort collection by object attribute."
            },
            "parent": {
              "required": false,
              "default": [],
              "description": "Limit result set to those of particular parent ids."
            },
            "parent_exclude": {
              "required": false,
              "default": [],
              "description": "Limit result set to all items except those of a particular parent id."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to posts with a specific slug."
            },
            "status": {
              "required": false,
              "default": "publish",
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "trash",
                "auto-draft",
                "inherit",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived",
                "any"
              ],
              "description": "Limit result set to posts assigned a specific status; can be comma-delimited list of status types."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "author": {
              "required": false,
              "description": "The id for the author of the object."
            },
            "excerpt": {
              "required": false,
              "description": "The excerpt for the object."
            },
            "featured_media": {
              "required": false,
              "description": "The id of the featured media for the object."
            },
            "comment_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not comments are open on the object."
            },
            "ping_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not the object can be pinged."
            },
            "menu_order": {
              "required": false,
              "description": "The order of the object in relation to other object of its type."
            },
            "template": {
              "required": false,
              "enum": [
                "templates/page-member-deals.php",
                "templates/page-membership-features.php",
                "templates/page-publish-event.php"
              ],
              "description": "The theme file to use to display the object."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/pages"
      }
    },
    "/wp/v2/pages/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "password": {
              "required": false,
              "description": "The password for the post if it is password protected."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "author": {
              "required": false,
              "description": "The id for the author of the object."
            },
            "excerpt": {
              "required": false,
              "description": "The excerpt for the object."
            },
            "featured_media": {
              "required": false,
              "description": "The id of the featured media for the object."
            },
            "comment_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not comments are open on the object."
            },
            "ping_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not the object can be pinged."
            },
            "menu_order": {
              "required": false,
              "description": "The order of the object in relation to other object of its type."
            },
            "template": {
              "required": false,
              "enum": [
                "templates/page-member-deals.php",
                "templates/page-membership-features.php",
                "templates/page-publish-event.php"
              ],
              "description": "The theme file to use to display the object."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            }
          }
        }
      ]
    },
    "/wp/v2/pages/(?P<parent>[\\d]+)/revisions": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wp/v2/pages/(?P<parent>[\\d]+)/revisions/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": []
        }
      ]
    },
    "/wp/v2/media": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "author": {
              "required": false,
              "default": [],
              "description": "Limit result set to posts assigned to specific authors."
            },
            "author_exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes posts assigned to specific authors."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "relevance",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "parent": {
              "required": false,
              "default": [],
              "description": "Limit result set to those of particular parent ids."
            },
            "parent_exclude": {
              "required": false,
              "default": [],
              "description": "Limit result set to all items except those of a particular parent id."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to posts with a specific slug."
            },
            "status": {
              "required": false,
              "default": "inherit",
              "enum": [
                "inherit",
                "private",
                "trash"
              ],
              "description": "Limit result set to posts assigned a specific status; can be comma-delimited list of status types."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "media_type": {
              "required": false,
              "enum": [
                "image",
                "video",
                "text",
                "application",
                "audio"
              ],
              "description": "Limit result set to attachments of a particular media type."
            },
            "mime_type": {
              "required": false,
              "description": "Limit result set to attachments of a particular mime type."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "author": {
              "required": false,
              "description": "The id for the author of the object."
            },
            "comment_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not comments are open on the object."
            },
            "ping_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not the object can be pinged."
            },
            "alt_text": {
              "required": false,
              "description": "Alternative text to display when resource is not displayed."
            },
            "caption": {
              "required": false,
              "description": "The caption for the resource."
            },
            "description": {
              "required": false,
              "description": "The description for the resource."
            },
            "post": {
              "required": false,
              "description": "The id for the associated post of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/media"
      }
    },
    "/wp/v2/media/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "password": {
              "required": false,
              "description": "The password for the post if it is password protected."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "author": {
              "required": false,
              "description": "The id for the author of the object."
            },
            "comment_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not comments are open on the object."
            },
            "ping_status": {
              "required": false,
              "enum": [
                "open",
                "closed"
              ],
              "description": "Whether or not the object can be pinged."
            },
            "alt_text": {
              "required": false,
              "description": "Alternative text to display when resource is not displayed."
            },
            "caption": {
              "required": false,
              "description": "The caption for the resource."
            },
            "description": {
              "required": false,
              "description": "The description for the resource."
            },
            "post": {
              "required": false,
              "description": "The id for the associated post of the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            }
          }
        }
      ]
    },
    "/wp/v2/poststatus_partners": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "relevance",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to posts with a specific slug."
            },
            "status": {
              "required": false,
              "default": "publish",
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "trash",
                "auto-draft",
                "inherit",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived",
                "any"
              ],
              "description": "Limit result set to posts assigned a specific status; can be comma-delimited list of status types."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "poststatus_partner_category": {
              "required": false,
              "default": [],
              "description": "Limit result set to all items that have the specified term assigned in the poststatus_partner_category taxonomy."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "excerpt": {
              "required": false,
              "description": "The excerpt for the object."
            },
            "featured_media": {
              "required": false,
              "description": "The id of the featured media for the object."
            },
            "poststatus_partner_category": {
              "required": false,
              "description": "The terms assigned to the object in the poststatus_partner_category taxonomy."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/poststatus_partners"
      }
    },
    "/wp/v2/poststatus_partners/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "password": {
              "required": false,
              "description": "The password for the post if it is password protected."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "date": {
              "required": false,
              "description": "The date the object was published, in the site's timezone."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published, as GMT."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the object unique to its type."
            },
            "status": {
              "required": false,
              "enum": [
                "publish",
                "future",
                "draft",
                "pending",
                "private",
                "in-progress",
                "failed",
                "wc-active",
                "wc-switched",
                "wc-expired",
                "wc-pending-cancel",
                "wc-pending",
                "wc-processing",
                "wc-on-hold",
                "wc-completed",
                "wc-cancelled",
                "wc-refunded",
                "wc-failed",
                "wcm-active",
                "wcm-free_trial",
                "wcm-delayed",
                "wcm-complimentary",
                "wcm-pending",
                "wcm-paused",
                "wcm-expired",
                "wcm-cancelled",
                "fue-inactive",
                "fue-active",
                "fue-archived"
              ],
              "description": "A named status for the object."
            },
            "title": {
              "required": false,
              "description": "The title for the object."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "excerpt": {
              "required": false,
              "description": "The excerpt for the object."
            },
            "featured_media": {
              "required": false,
              "description": "The id of the featured media for the object."
            },
            "poststatus_partner_category": {
              "required": false,
              "description": "The terms assigned to the object in the poststatus_partner_category taxonomy."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            }
          }
        }
      ]
    },
    "/wp/v2/types": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/types"
      }
    },
    "/wp/v2/types/(?P<type>[\\w-]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wp/v2/statuses": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/statuses"
      }
    },
    "/wp/v2/statuses/(?P<status>[\\w-]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wp/v2/taxonomies": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "type": {
              "required": false,
              "description": "Limit results to resources associated with a specific post type."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/taxonomies"
      }
    },
    "/wp/v2/taxonomies/(?P<taxonomy>[\\w-]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wp/v2/categories": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any posts."
            },
            "parent": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific parent."
            },
            "post": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific post."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "name": {
              "required": true,
              "description": "HTML title for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/categories"
      }
    },
    "/wp/v2/categories/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "name": {
              "required": false,
              "description": "HTML title for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wp/v2/tags": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any posts."
            },
            "post": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific post."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "name": {
              "required": true,
              "description": "HTML title for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/tags"
      }
    },
    "/wp/v2/tags/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "name": {
              "required": false,
              "description": "HTML title for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wp/v2/poststatus_partner_category": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any posts."
            },
            "parent": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific parent."
            },
            "post": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific post."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "name": {
              "required": true,
              "description": "HTML title for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/poststatus_partner_category"
      }
    },
    "/wp/v2/poststatus_partner_category/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "name": {
              "required": false,
              "description": "HTML title for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wp/v2/users": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "registered_date",
                "slug",
                "email",
                "url"
              ],
              "description": "Sort collection by object attribute."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            },
            "roles": {
              "required": false,
              "description": "Limit result set to resources matching at least one specific role provided. Accepts csv list or single role."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "username": {
              "required": true,
              "description": "Login name for the resource."
            },
            "name": {
              "required": false,
              "description": "Display name for the resource."
            },
            "first_name": {
              "required": false,
              "description": "First name for the resource."
            },
            "last_name": {
              "required": false,
              "description": "Last name for the resource."
            },
            "email": {
              "required": true,
              "description": "The email address for the resource."
            },
            "url": {
              "required": false,
              "description": "URL of the resource."
            },
            "description": {
              "required": false,
              "description": "Description of the resource."
            },
            "nickname": {
              "required": false,
              "description": "The nickname for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource."
            },
            "roles": {
              "required": false,
              "description": "Roles assigned to the resource."
            },
            "password": {
              "required": true,
              "description": "Password for the resource (never included)."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/users"
      }
    },
    "/wp/v2/users/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "username": {
              "required": false,
              "description": "Login name for the resource."
            },
            "name": {
              "required": false,
              "description": "Display name for the resource."
            },
            "first_name": {
              "required": false,
              "description": "First name for the resource."
            },
            "last_name": {
              "required": false,
              "description": "Last name for the resource."
            },
            "email": {
              "required": false,
              "description": "The email address for the resource."
            },
            "url": {
              "required": false,
              "description": "URL of the resource."
            },
            "description": {
              "required": false,
              "description": "Description of the resource."
            },
            "nickname": {
              "required": false,
              "description": "The nickname for the resource."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource."
            },
            "roles": {
              "required": false,
              "description": "Roles assigned to the resource."
            },
            "password": {
              "required": false,
              "description": "Password for the resource (never included)."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            },
            "reassign": {
              "required": false
            }
          }
        }
      ]
    },
    "/wp/v2/users/me": {
      "namespace": "wp/v2",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/users/me"
      }
    },
    "/wp/v2/comments": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "author": {
              "required": false,
              "description": "Limit result set to comments assigned to specific user ids. Requires authorization."
            },
            "author_exclude": {
              "required": false,
              "description": "Ensure result set excludes comments assigned to specific user ids. Requires authorization."
            },
            "author_email": {
              "required": false,
              "description": "Limit result set to that from a specific author email. Requires authorization."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "karma": {
              "required": false,
              "description": "Limit result set to that of a particular comment karma. Requires authorization."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of comments."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date_gmt",
              "enum": [
                "date",
                "date_gmt",
                "id",
                "include",
                "post",
                "parent",
                "type"
              ],
              "description": "Sort collection by object attribute."
            },
            "parent": {
              "required": false,
              "default": [],
              "description": "Limit result set to resources of specific parent ids."
            },
            "parent_exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific parent ids."
            },
            "post": {
              "required": false,
              "default": [],
              "description": "Limit result set to resources assigned to specific post ids."
            },
            "status": {
              "required": false,
              "default": "approve",
              "description": "Limit result set to comments assigned a specific status. Requires authorization."
            },
            "type": {
              "required": false,
              "default": "comment",
              "description": "Limit result set to comments assigned a specific type. Requires authorization."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "author": {
              "required": false,
              "description": "The id of the user object, if author was a user."
            },
            "author_email": {
              "required": false,
              "description": "Email address for the object author."
            },
            "author_ip": {
              "required": false,
              "default": "127.0.0.1",
              "description": "IP address for the object author."
            },
            "author_name": {
              "required": false,
              "default": "",
              "description": "Display name for the object author."
            },
            "author_url": {
              "required": false,
              "description": "URL for the object author."
            },
            "content": {
              "required": false,
              "default": "",
              "description": "The content for the object."
            },
            "date": {
              "required": false,
              "description": "The date the object was published."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published as GMT."
            },
            "karma": {
              "required": false,
              "description": "Karma for the object."
            },
            "parent": {
              "required": false,
              "default": 0,
              "description": "The id for the parent of the object."
            },
            "post": {
              "required": false,
              "default": 0,
              "description": "The id of the associated post object."
            },
            "status": {
              "required": false,
              "description": "State of the object."
            },
            "type": {
              "required": false,
              "default": "",
              "description": "Type of Comment for the object."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wp/v2/comments"
      }
    },
    "/wp/v2/comments/(?P<id>[\\d]+)": {
      "namespace": "wp/v2",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "embed",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "author": {
              "required": false,
              "description": "The id of the user object, if author was a user."
            },
            "author_email": {
              "required": false,
              "description": "Email address for the object author."
            },
            "author_ip": {
              "required": false,
              "description": "IP address for the object author."
            },
            "author_name": {
              "required": false,
              "description": "Display name for the object author."
            },
            "author_url": {
              "required": false,
              "description": "URL for the object author."
            },
            "content": {
              "required": false,
              "description": "The content for the object."
            },
            "date": {
              "required": false,
              "description": "The date the object was published."
            },
            "date_gmt": {
              "required": false,
              "description": "The date the object was published as GMT."
            },
            "karma": {
              "required": false,
              "description": "Karma for the object."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the object."
            },
            "post": {
              "required": false,
              "description": "The id of the associated post object."
            },
            "status": {
              "required": false,
              "description": "State of the object."
            },
            "type": {
              "required": false,
              "description": "Type of Comment for the object."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            }
          }
        }
      ]
    },
    "/oembed/1.0": {
      "namespace": "oembed/1.0",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "namespace": {
              "required": false,
              "default": "oembed/1.0"
            },
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/oembed/1.0"
      }
    },
    "/oembed/1.0/embed": {
      "namespace": "oembed/1.0",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "url": {
              "required": true
            },
            "format": {
              "required": false,
              "default": "json"
            },
            "maxwidth": {
              "required": false,
              "default": 600
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/oembed/1.0/embed"
      }
    },
    "/jetpack/v4": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "namespace": {
              "required": false,
              "default": "jetpack/v4"
            },
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4"
      }
    },
    "/jetpack/v4/connection": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/connection"
      }
    },
    "/jetpack/v4/connection/url": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/connection/url"
      }
    },
    "/jetpack/v4/connection/data": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/connection/data"
      }
    },
    "/jetpack/v4/connection/user": {
      "namespace": "jetpack/v4",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/connection/user"
      }
    },
    "/jetpack/v4/site": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/site"
      }
    },
    "/jetpack/v4/module/all": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/module/all"
      }
    },
    "/jetpack/v4/module/all/active": {
      "namespace": "jetpack/v4",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "modules": {
              "required": true,
              "default": ""
            },
            "active": {
              "required": false,
              "default": true
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/module/all/active"
      }
    },
    "/jetpack/v4/module/(?P<slug>[a-z\\-]+)": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "edit"
            }
          }
        }
      ]
    },
    "/jetpack/v4/module/(?P<slug>[a-z\\-]+)/active": {
      "namespace": "jetpack/v4",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "active": {
              "required": true,
              "default": true
            }
          }
        }
      ]
    },
    "/jetpack/v4/module/(?P<slug>[a-z\\-]+)/data": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "range": {
              "required": false,
              "default": "day"
            }
          }
        }
      ]
    },
    "/jetpack/v4/options/(?P<options>[a-z\\-]+)": {
      "namespace": "jetpack/v4",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": []
        }
      ]
    },
    "/jetpack/v4/settings": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/settings"
      }
    },
    "/jetpack/v4/jumpstart": {
      "namespace": "jetpack/v4",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "active": {
              "required": true
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/jumpstart"
      }
    },
    "/jetpack/v4/updates/plugins": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/updates/plugins"
      }
    },
    "/jetpack/v4/notice/(?P<notice>[a-z\\-_]+)": {
      "namespace": "jetpack/v4",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": []
        }
      ]
    },
    "/jetpack/v4/plugins": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/jetpack/v4/plugins"
      }
    },
    "/jetpack/v4/plugin/(?P<plugin>[a-z\\/\\.\\-_]+)": {
      "namespace": "jetpack/v4",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ]
    },
    "/wc/v1": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "namespace": {
              "required": false,
              "default": "wc/v1"
            },
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1"
      }
    },
    "/wc/v1/coupons": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "code": {
              "required": false,
              "description": "Limit result set to resources with a specific code."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "code": {
              "required": true
            },
            "description": {
              "required": false,
              "description": "Coupon description."
            },
            "discount_type": {
              "required": false,
              "default": "fixed_cart",
              "enum": [
                "fixed_cart",
                "percent",
                "fixed_product",
                "percent_product",
                "sign_up_fee",
                "sign_up_fee_percent",
                "recurring_fee",
                "recurring_percent"
              ],
              "description": "Determines the type of discount that will be applied."
            },
            "amount": {
              "required": false,
              "description": "The amount of discount."
            },
            "expiry_date": {
              "required": false,
              "description": "UTC DateTime when the coupon expires."
            },
            "individual_use": {
              "required": false,
              "default": false,
              "description": "Whether coupon can only be used individually."
            },
            "product_ids": {
              "required": false,
              "description": "List of product ID's the coupon can be used on."
            },
            "exclude_product_ids": {
              "required": false,
              "description": "List of product ID's the coupon cannot be used on."
            },
            "usage_limit": {
              "required": false,
              "description": "How many times the coupon can be used."
            },
            "usage_limit_per_user": {
              "required": false,
              "description": "How many times the coupon can be used per customer."
            },
            "limit_usage_to_x_items": {
              "required": false,
              "description": "Max number of items in the cart the coupon can be applied to."
            },
            "free_shipping": {
              "required": false,
              "default": false,
              "description": "Define if can be applied for free shipping."
            },
            "product_categories": {
              "required": false,
              "description": "List of category ID's the coupon applies to."
            },
            "excluded_product_categories": {
              "required": false,
              "description": "List of category ID's the coupon does not apply to."
            },
            "exclude_sale_items": {
              "required": false,
              "default": false,
              "description": "Define if should not apply when have sale items."
            },
            "minimum_amount": {
              "required": false,
              "description": "Minimum order amount that needs to be in the cart before coupon applies."
            },
            "maximum_amount": {
              "required": false,
              "description": "Maximum order amount allowed when using the coupon."
            },
            "email_restrictions": {
              "required": false,
              "description": "List of email addresses that can use this coupon."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/coupons"
      }
    },
    "/wc/v1/coupons/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "code": {
              "required": false,
              "description": "Coupon code."
            },
            "description": {
              "required": false,
              "description": "Coupon description."
            },
            "discount_type": {
              "required": false,
              "enum": [
                "fixed_cart",
                "percent",
                "fixed_product",
                "percent_product",
                "sign_up_fee",
                "sign_up_fee_percent",
                "recurring_fee",
                "recurring_percent"
              ],
              "description": "Determines the type of discount that will be applied."
            },
            "amount": {
              "required": false,
              "description": "The amount of discount."
            },
            "expiry_date": {
              "required": false,
              "description": "UTC DateTime when the coupon expires."
            },
            "individual_use": {
              "required": false,
              "description": "Whether coupon can only be used individually."
            },
            "product_ids": {
              "required": false,
              "description": "List of product ID's the coupon can be used on."
            },
            "exclude_product_ids": {
              "required": false,
              "description": "List of product ID's the coupon cannot be used on."
            },
            "usage_limit": {
              "required": false,
              "description": "How many times the coupon can be used."
            },
            "usage_limit_per_user": {
              "required": false,
              "description": "How many times the coupon can be used per customer."
            },
            "limit_usage_to_x_items": {
              "required": false,
              "description": "Max number of items in the cart the coupon can be applied to."
            },
            "free_shipping": {
              "required": false,
              "description": "Define if can be applied for free shipping."
            },
            "product_categories": {
              "required": false,
              "description": "List of category ID's the coupon applies to."
            },
            "excluded_product_categories": {
              "required": false,
              "description": "List of category ID's the coupon does not apply to."
            },
            "exclude_sale_items": {
              "required": false,
              "description": "Define if should not apply when have sale items."
            },
            "minimum_amount": {
              "required": false,
              "description": "Minimum order amount that needs to be in the cart before coupon applies."
            },
            "maximum_amount": {
              "required": false,
              "description": "Maximum order amount allowed when using the coupon."
            },
            "email_restrictions": {
              "required": false,
              "description": "List of email addresses that can use this coupon."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            }
          }
        }
      ]
    },
    "/wc/v1/coupons/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "code": {
              "required": false,
              "description": "Coupon code."
            },
            "description": {
              "required": false,
              "description": "Coupon description."
            },
            "discount_type": {
              "required": false,
              "enum": [
                "fixed_cart",
                "percent",
                "fixed_product",
                "percent_product",
                "sign_up_fee",
                "sign_up_fee_percent",
                "recurring_fee",
                "recurring_percent"
              ],
              "description": "Determines the type of discount that will be applied."
            },
            "amount": {
              "required": false,
              "description": "The amount of discount."
            },
            "expiry_date": {
              "required": false,
              "description": "UTC DateTime when the coupon expires."
            },
            "individual_use": {
              "required": false,
              "description": "Whether coupon can only be used individually."
            },
            "product_ids": {
              "required": false,
              "description": "List of product ID's the coupon can be used on."
            },
            "exclude_product_ids": {
              "required": false,
              "description": "List of product ID's the coupon cannot be used on."
            },
            "usage_limit": {
              "required": false,
              "description": "How many times the coupon can be used."
            },
            "usage_limit_per_user": {
              "required": false,
              "description": "How many times the coupon can be used per customer."
            },
            "limit_usage_to_x_items": {
              "required": false,
              "description": "Max number of items in the cart the coupon can be applied to."
            },
            "free_shipping": {
              "required": false,
              "description": "Define if can be applied for free shipping."
            },
            "product_categories": {
              "required": false,
              "description": "List of category ID's the coupon applies to."
            },
            "excluded_product_categories": {
              "required": false,
              "description": "List of category ID's the coupon does not apply to."
            },
            "exclude_sale_items": {
              "required": false,
              "description": "Define if should not apply when have sale items."
            },
            "minimum_amount": {
              "required": false,
              "description": "Minimum order amount that needs to be in the cart before coupon applies."
            },
            "maximum_amount": {
              "required": false,
              "description": "Maximum order amount allowed when using the coupon."
            },
            "email_restrictions": {
              "required": false,
              "description": "List of email addresses that can use this coupon."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/coupons/batch"
      }
    },
    "/wc/v1/customers/(?P<customer_id>[\\d]+)/downloads": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wc/v1/customers": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "registered_date"
              ],
              "description": "Sort collection by object attribute."
            },
            "email": {
              "required": false,
              "description": "Limit result set to resources with a specific email."
            },
            "role": {
              "required": false,
              "default": "customer",
              "enum": [
                "all",
                "administrator",
                "editor",
                "author",
                "contributor",
                "subscriber",
                "spec_comment_moderator",
                "customer",
                "shop_manager",
                "fue_manager"
              ],
              "description": "Limit result set to resources with a specific role."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "email": {
              "required": true
            },
            "first_name": {
              "required": false,
              "description": "Customer first name."
            },
            "last_name": {
              "required": false,
              "description": "Customer last name."
            },
            "username": {
              "required": true
            },
            "password": {
              "required": false
            },
            "billing": {
              "required": false,
              "description": "List of billing address data."
            },
            "shipping": {
              "required": false,
              "description": "List of shipping address data."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/customers"
      }
    },
    "/wc/v1/customers/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "email": {
              "required": false,
              "description": "The email address for the customer."
            },
            "first_name": {
              "required": false,
              "description": "Customer first name."
            },
            "last_name": {
              "required": false,
              "description": "Customer last name."
            },
            "username": {
              "required": false,
              "description": "Customer login name."
            },
            "password": {
              "required": false,
              "description": "Customer password."
            },
            "billing": {
              "required": false,
              "description": "List of billing address data."
            },
            "shipping": {
              "required": false,
              "description": "List of shipping address data."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            },
            "reassign": {
              "required": false
            }
          }
        }
      ]
    },
    "/wc/v1/customers/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "email": {
              "required": false,
              "description": "The email address for the customer."
            },
            "first_name": {
              "required": false,
              "description": "Customer first name."
            },
            "last_name": {
              "required": false,
              "description": "Customer last name."
            },
            "username": {
              "required": false,
              "description": "Customer login name."
            },
            "password": {
              "required": false,
              "description": "Customer password."
            },
            "billing": {
              "required": false,
              "description": "List of billing address data."
            },
            "shipping": {
              "required": false,
              "description": "List of shipping address data."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/customers/batch"
      }
    },
    "/wc/v1/orders/(?P<order_id>[\\d]+)/notes": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "note": {
              "required": true
            },
            "customer_note": {
              "required": false,
              "default": false,
              "description": "Shows/define if the note is only for reference or for the customer (the user will be notified)."
            }
          }
        }
      ]
    },
    "/wc/v1/orders/(?P<order_id>[\\d]+)/notes/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/orders/(?P<order_id>[\\d]+)/refunds": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "dp": {
              "required": false,
              "default": 2,
              "description": "Number of decimal points to use in each resource."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "amount": {
              "required": false,
              "description": "Refund amount."
            },
            "reason": {
              "required": false,
              "description": "Reason for refund."
            },
            "line_items": {
              "required": false,
              "description": "Line items data."
            }
          }
        }
      ]
    },
    "/wc/v1/orders/(?P<order_id>[\\d]+)/refunds/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            },
            "reassign": {
              "required": false
            }
          }
        }
      ]
    },
    "/wc/v1/orders": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "status": {
              "required": false,
              "default": "any",
              "enum": [
                "any",
                "pending",
                "processing",
                "on-hold",
                "completed",
                "cancelled",
                "refunded",
                "failed"
              ],
              "description": "Limit result set to orders assigned a specific status."
            },
            "customer": {
              "required": false,
              "description": "Limit result set to orders assigned a specific customer."
            },
            "product": {
              "required": false,
              "description": "Limit result set to orders assigned a specific product."
            },
            "dp": {
              "required": false,
              "default": 2,
              "description": "Number of decimal points to use in each resource."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "parent_id": {
              "required": false,
              "description": "Parent order ID."
            },
            "status": {
              "required": false,
              "default": "pending",
              "enum": [
                "pending",
                "processing",
                "on-hold",
                "completed",
                "cancelled",
                "refunded",
                "failed"
              ],
              "description": "Order status."
            },
            "currency": {
              "required": false,
              "default": "USD",
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BRL",
                "BSD",
                "BTC",
                "BTN",
                "BWP",
                "BYR",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "IMP",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JEP",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MRO",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PRB",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SDG",
                "SEK",
                "SGD",
                "SHP",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STD",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VEF",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XCD",
                "XOF",
                "XPF",
                "YER",
                "ZAR",
                "ZMW"
              ],
              "description": "Currency the order was created with, in ISO format."
            },
            "customer_id": {
              "required": false,
              "default": 0,
              "description": "User ID who owns the order. 0 for guests."
            },
            "billing": {
              "required": false,
              "description": "Billing address."
            },
            "shipping": {
              "required": false,
              "description": "Shipping address."
            },
            "payment_method": {
              "required": false,
              "description": "Payment method ID."
            },
            "payment_method_title": {
              "required": false,
              "description": "Payment method title."
            },
            "set_paid": {
              "required": false,
              "default": false,
              "description": "Define if the order is paid. It will set the status to processing and reduce stock items."
            },
            "transaction_id": {
              "required": false,
              "description": "Unique transaction ID."
            },
            "customer_note": {
              "required": false,
              "description": "Note left by customer during checkout."
            },
            "line_items": {
              "required": false,
              "description": "Line items data."
            },
            "shipping_lines": {
              "required": false,
              "description": "Shipping lines data."
            },
            "fee_lines": {
              "required": false,
              "description": "Fee lines data."
            },
            "coupon_lines": {
              "required": false,
              "description": "Coupons line data."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/orders"
      }
    },
    "/wc/v1/orders/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "parent_id": {
              "required": false,
              "description": "Parent order ID."
            },
            "status": {
              "required": false,
              "enum": [
                "pending",
                "processing",
                "on-hold",
                "completed",
                "cancelled",
                "refunded",
                "failed"
              ],
              "description": "Order status."
            },
            "currency": {
              "required": false,
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BRL",
                "BSD",
                "BTC",
                "BTN",
                "BWP",
                "BYR",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "IMP",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JEP",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MRO",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PRB",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SDG",
                "SEK",
                "SGD",
                "SHP",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STD",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VEF",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XCD",
                "XOF",
                "XPF",
                "YER",
                "ZAR",
                "ZMW"
              ],
              "description": "Currency the order was created with, in ISO format."
            },
            "customer_id": {
              "required": false,
              "description": "User ID who owns the order. 0 for guests."
            },
            "billing": {
              "required": false,
              "description": "Billing address."
            },
            "shipping": {
              "required": false,
              "description": "Shipping address."
            },
            "payment_method": {
              "required": false,
              "description": "Payment method ID."
            },
            "payment_method_title": {
              "required": false,
              "description": "Payment method title."
            },
            "set_paid": {
              "required": false,
              "description": "Define if the order is paid. It will set the status to processing and reduce stock items."
            },
            "transaction_id": {
              "required": false,
              "description": "Unique transaction ID."
            },
            "customer_note": {
              "required": false,
              "description": "Note left by customer during checkout."
            },
            "line_items": {
              "required": false,
              "description": "Line items data."
            },
            "shipping_lines": {
              "required": false,
              "description": "Shipping lines data."
            },
            "fee_lines": {
              "required": false,
              "description": "Fee lines data."
            },
            "coupon_lines": {
              "required": false,
              "description": "Coupons line data."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            },
            "reassign": {
              "required": false
            }
          }
        }
      ]
    },
    "/wc/v1/orders/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "parent_id": {
              "required": false,
              "description": "Parent order ID."
            },
            "status": {
              "required": false,
              "enum": [
                "pending",
                "processing",
                "on-hold",
                "completed",
                "cancelled",
                "refunded",
                "failed"
              ],
              "description": "Order status."
            },
            "currency": {
              "required": false,
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BRL",
                "BSD",
                "BTC",
                "BTN",
                "BWP",
                "BYR",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "IMP",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JEP",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MRO",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PRB",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SDG",
                "SEK",
                "SGD",
                "SHP",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STD",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VEF",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XCD",
                "XOF",
                "XPF",
                "YER",
                "ZAR",
                "ZMW"
              ],
              "description": "Currency the order was created with, in ISO format."
            },
            "customer_id": {
              "required": false,
              "description": "User ID who owns the order. 0 for guests."
            },
            "billing": {
              "required": false,
              "description": "Billing address."
            },
            "shipping": {
              "required": false,
              "description": "Shipping address."
            },
            "payment_method": {
              "required": false,
              "description": "Payment method ID."
            },
            "payment_method_title": {
              "required": false,
              "description": "Payment method title."
            },
            "set_paid": {
              "required": false,
              "description": "Define if the order is paid. It will set the status to processing and reduce stock items."
            },
            "transaction_id": {
              "required": false,
              "description": "Unique transaction ID."
            },
            "customer_note": {
              "required": false,
              "description": "Note left by customer during checkout."
            },
            "line_items": {
              "required": false,
              "description": "Line items data."
            },
            "shipping_lines": {
              "required": false,
              "description": "Shipping lines data."
            },
            "fee_lines": {
              "required": false,
              "description": "Fee lines data."
            },
            "coupon_lines": {
              "required": false,
              "description": "Coupons line data."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/orders/batch"
      }
    },
    "/wc/v1/products/attributes/(?P<attribute_id>[\\d]+)/terms": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any products."
            },
            "parent": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific parent."
            },
            "product": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific product."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": true
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort the resource."
            }
          }
        }
      ]
    },
    "/wc/v1/products/attributes/(?P<attribute_id>[\\d]+)/terms/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Term name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/products/attributes/(?P<attribute_id>[\\d]+)/terms/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Term name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort the resource."
            }
          }
        }
      ]
    },
    "/wc/v1/products/attributes": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": true
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "type": {
              "required": false,
              "default": "select",
              "enum": [
                "select",
                "text"
              ],
              "description": "Type of attribute."
            },
            "order_by": {
              "required": false,
              "default": "menu_order",
              "enum": [
                "menu_order",
                "name",
                "name_num",
                "id"
              ],
              "description": "Default sort order."
            },
            "has_archives": {
              "required": false,
              "default": false,
              "description": "Enable/Disable attribute archives."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/attributes"
      }
    },
    "/wc/v1/products/attributes/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Attribute name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "type": {
              "required": false,
              "enum": [
                "select",
                "text"
              ],
              "description": "Type of attribute."
            },
            "order_by": {
              "required": false,
              "enum": [
                "menu_order",
                "name",
                "name_num",
                "id"
              ],
              "description": "Default sort order."
            },
            "has_archives": {
              "required": false,
              "description": "Enable/Disable attribute archives."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/products/attributes/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Attribute name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "type": {
              "required": false,
              "enum": [
                "select",
                "text"
              ],
              "description": "Type of attribute."
            },
            "order_by": {
              "required": false,
              "enum": [
                "menu_order",
                "name",
                "name_num",
                "id"
              ],
              "description": "Default sort order."
            },
            "has_archives": {
              "required": false,
              "description": "Enable/Disable attribute archives."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/attributes/batch"
      }
    },
    "/wc/v1/products/categories": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any products."
            },
            "parent": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific parent."
            },
            "product": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific product."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": true
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "display": {
              "required": false,
              "default": "default",
              "enum": [
                "default",
                "products",
                "subcategories",
                "both"
              ],
              "description": "Category archive display type."
            },
            "image": {
              "required": false,
              "description": "Image data."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/categories"
      }
    },
    "/wc/v1/products/categories/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Category name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "display": {
              "required": false,
              "enum": [
                "default",
                "products",
                "subcategories",
                "both"
              ],
              "description": "Category archive display type."
            },
            "image": {
              "required": false,
              "description": "Image data."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/products/categories/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Category name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "parent": {
              "required": false,
              "description": "The id for the parent of the resource."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            },
            "display": {
              "required": false,
              "enum": [
                "default",
                "products",
                "subcategories",
                "both"
              ],
              "description": "Category archive display type."
            },
            "image": {
              "required": false,
              "description": "Image data."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/categories/batch"
      }
    },
    "/wc/v1/products/(?P<product_id>[\\d]+)/reviews": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wc/v1/products/(?P<product_id>[\\d]+)/reviews/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wc/v1/products/shipping_classes": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any products."
            },
            "product": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific product."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": true
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/shipping_classes"
      }
    },
    "/wc/v1/products/shipping_classes/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Shipping class name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/products/shipping_classes/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Shipping class name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/shipping_classes/batch"
      }
    },
    "/wc/v1/products/tags": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "name",
              "enum": [
                "id",
                "include",
                "name",
                "slug",
                "term_group",
                "description",
                "count"
              ],
              "description": "Sort collection by resource attribute."
            },
            "hide_empty": {
              "required": false,
              "default": false,
              "description": "Whether to hide resources not assigned to any products."
            },
            "product": {
              "required": false,
              "description": "Limit result set to resources assigned to a specific product."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to resources with a specific slug."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": true
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/tags"
      }
    },
    "/wc/v1/products/tags/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Tag name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/products/tags/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Tag name."
            },
            "slug": {
              "required": false,
              "description": "An alphanumeric identifier for the resource unique to its type."
            },
            "description": {
              "required": false,
              "description": "HTML description of the resource."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/tags/batch"
      }
    },
    "/wc/v1/products": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "slug": {
              "required": false,
              "description": "Limit result set to products with a specific slug."
            },
            "status": {
              "required": false,
              "default": "any",
              "enum": [
                "any",
                "draft",
                "pending",
                "private",
                "publish"
              ],
              "description": "Limit result set to products assigned a specific status."
            },
            "type": {
              "required": false,
              "enum": [
                "simple",
                "grouped",
                "external",
                "variable",
                "subscription",
                "variable-subscription"
              ],
              "description": "Limit result set to products assigned a specific type."
            },
            "category": {
              "required": false,
              "description": "Limit result set to products assigned a specific category."
            },
            "tag": {
              "required": false,
              "description": "Limit result set to products assigned a specific tag."
            },
            "shipping_class": {
              "required": false,
              "description": "Limit result set to products assigned a specific shipping class."
            },
            "attribute": {
              "required": false,
              "description": "Limit result set to products with a specific attribute."
            },
            "attribute_term": {
              "required": false,
              "description": "Limit result set to products with a specific attribute term (required an assigned attribute)."
            },
            "sku": {
              "required": false,
              "description": "Limit result set to products with a specific SKU."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Product name."
            },
            "slug": {
              "required": false,
              "description": "Product slug."
            },
            "type": {
              "required": false,
              "default": "simple",
              "enum": [
                "simple",
                "grouped",
                "external",
                "variable",
                "subscription",
                "variable-subscription"
              ],
              "description": "Product type."
            },
            "status": {
              "required": false,
              "default": "publish",
              "enum": [
                "draft",
                "pending",
                "private",
                "publish"
              ],
              "description": "Product status (post status)."
            },
            "featured": {
              "required": false,
              "default": false,
              "description": "Featured product."
            },
            "catalog_visibility": {
              "required": false,
              "default": "visible",
              "enum": [
                "visible",
                "catalog",
                "search",
                "hidden"
              ],
              "description": "Catalog visibility."
            },
            "description": {
              "required": false,
              "description": "Product description."
            },
            "short_description": {
              "required": false,
              "description": "Product short description."
            },
            "sku": {
              "required": false,
              "description": "Unique identifier."
            },
            "regular_price": {
              "required": false,
              "description": "Product regular price."
            },
            "sale_price": {
              "required": false,
              "description": "Product sale price."
            },
            "date_on_sale_from": {
              "required": false,
              "description": "Start date of sale price."
            },
            "date_on_sale_to": {
              "required": false,
              "description": "End data of sale price."
            },
            "virtual": {
              "required": false,
              "default": false,
              "description": "If the product is virtual."
            },
            "downloadable": {
              "required": false,
              "default": false,
              "description": "If the product is downloadable."
            },
            "downloads": {
              "required": false,
              "description": "List of downloadable files."
            },
            "download_limit": {
              "required": false,
              "default": -1,
              "description": "Amount of times the product can be downloaded."
            },
            "download_expiry": {
              "required": false,
              "default": -1,
              "description": "Number of days that the customer has up to be able to download the product."
            },
            "download_type": {
              "required": false,
              "default": "standard",
              "enum": [
                "standard",
                "application",
                "music"
              ],
              "description": "Download type, this controls the schema on the front-end."
            },
            "external_url": {
              "required": false,
              "description": "Product external URL. Only for external products."
            },
            "button_text": {
              "required": false,
              "description": "Product external button text. Only for external products."
            },
            "tax_status": {
              "required": false,
              "default": "taxable",
              "enum": [
                "taxable",
                "shipping",
                "none"
              ],
              "description": "Tax status."
            },
            "tax_class": {
              "required": false,
              "description": "Tax class."
            },
            "manage_stock": {
              "required": false,
              "default": false,
              "description": "Stock management at product level."
            },
            "stock_quantity": {
              "required": false,
              "description": "Stock quantity."
            },
            "in_stock": {
              "required": false,
              "default": true,
              "description": "Controls whether or not the product is listed as \"in stock\" or \"out of stock\" on the frontend."
            },
            "backorders": {
              "required": false,
              "default": "no",
              "enum": [
                "no",
                "notify",
                "yes"
              ],
              "description": "If managing stock, this controls if backorders are allowed."
            },
            "sold_individually": {
              "required": false,
              "default": false,
              "description": "Allow one item to be bought in a single order."
            },
            "weight": {
              "required": false,
              "description": "Product weight (lbs)."
            },
            "dimensions": {
              "required": false,
              "description": "Product dimensions."
            },
            "shipping_class": {
              "required": false,
              "description": "Shipping class slug."
            },
            "reviews_allowed": {
              "required": false,
              "default": true,
              "description": "Allow reviews."
            },
            "upsell_ids": {
              "required": false,
              "description": "List of up-sell products IDs."
            },
            "cross_sell_ids": {
              "required": false,
              "description": "List of cross-sell products IDs."
            },
            "parent_id": {
              "required": false,
              "description": "Product parent ID."
            },
            "purchase_note": {
              "required": false,
              "description": "Optional note to send the customer after purchase."
            },
            "categories": {
              "required": false,
              "description": "List of categories."
            },
            "tags": {
              "required": false,
              "description": "List of tags."
            },
            "images": {
              "required": false,
              "description": "List of images."
            },
            "attributes": {
              "required": false,
              "description": "List of attributes."
            },
            "default_attributes": {
              "required": false,
              "description": "Defaults variation attributes."
            },
            "variations": {
              "required": false,
              "description": "List of variations."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort products."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products"
      }
    },
    "/wc/v1/products/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Product name."
            },
            "slug": {
              "required": false,
              "description": "Product slug."
            },
            "type": {
              "required": false,
              "enum": [
                "simple",
                "grouped",
                "external",
                "variable",
                "subscription",
                "variable-subscription"
              ],
              "description": "Product type."
            },
            "status": {
              "required": false,
              "enum": [
                "draft",
                "pending",
                "private",
                "publish"
              ],
              "description": "Product status (post status)."
            },
            "featured": {
              "required": false,
              "description": "Featured product."
            },
            "catalog_visibility": {
              "required": false,
              "enum": [
                "visible",
                "catalog",
                "search",
                "hidden"
              ],
              "description": "Catalog visibility."
            },
            "description": {
              "required": false,
              "description": "Product description."
            },
            "short_description": {
              "required": false,
              "description": "Product short description."
            },
            "sku": {
              "required": false,
              "description": "Unique identifier."
            },
            "regular_price": {
              "required": false,
              "description": "Product regular price."
            },
            "sale_price": {
              "required": false,
              "description": "Product sale price."
            },
            "date_on_sale_from": {
              "required": false,
              "description": "Start date of sale price."
            },
            "date_on_sale_to": {
              "required": false,
              "description": "End data of sale price."
            },
            "virtual": {
              "required": false,
              "description": "If the product is virtual."
            },
            "downloadable": {
              "required": false,
              "description": "If the product is downloadable."
            },
            "downloads": {
              "required": false,
              "description": "List of downloadable files."
            },
            "download_limit": {
              "required": false,
              "description": "Amount of times the product can be downloaded."
            },
            "download_expiry": {
              "required": false,
              "description": "Number of days that the customer has up to be able to download the product."
            },
            "download_type": {
              "required": false,
              "enum": [
                "standard",
                "application",
                "music"
              ],
              "description": "Download type, this controls the schema on the front-end."
            },
            "external_url": {
              "required": false,
              "description": "Product external URL. Only for external products."
            },
            "button_text": {
              "required": false,
              "description": "Product external button text. Only for external products."
            },
            "tax_status": {
              "required": false,
              "enum": [
                "taxable",
                "shipping",
                "none"
              ],
              "description": "Tax status."
            },
            "tax_class": {
              "required": false,
              "description": "Tax class."
            },
            "manage_stock": {
              "required": false,
              "description": "Stock management at product level."
            },
            "stock_quantity": {
              "required": false,
              "description": "Stock quantity."
            },
            "in_stock": {
              "required": false,
              "description": "Controls whether or not the product is listed as \"in stock\" or \"out of stock\" on the frontend."
            },
            "backorders": {
              "required": false,
              "enum": [
                "no",
                "notify",
                "yes"
              ],
              "description": "If managing stock, this controls if backorders are allowed."
            },
            "sold_individually": {
              "required": false,
              "description": "Allow one item to be bought in a single order."
            },
            "weight": {
              "required": false,
              "description": "Product weight (lbs)."
            },
            "dimensions": {
              "required": false,
              "description": "Product dimensions."
            },
            "shipping_class": {
              "required": false,
              "description": "Shipping class slug."
            },
            "reviews_allowed": {
              "required": false,
              "description": "Allow reviews."
            },
            "upsell_ids": {
              "required": false,
              "description": "List of up-sell products IDs."
            },
            "cross_sell_ids": {
              "required": false,
              "description": "List of cross-sell products IDs."
            },
            "parent_id": {
              "required": false,
              "description": "Product parent ID."
            },
            "purchase_note": {
              "required": false,
              "description": "Optional note to send the customer after purchase."
            },
            "categories": {
              "required": false,
              "description": "List of categories."
            },
            "tags": {
              "required": false,
              "description": "List of tags."
            },
            "images": {
              "required": false,
              "description": "List of images."
            },
            "attributes": {
              "required": false,
              "description": "List of attributes."
            },
            "default_attributes": {
              "required": false,
              "description": "Defaults variation attributes."
            },
            "variations": {
              "required": false,
              "description": "List of variations."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort products."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Whether to bypass trash and force deletion."
            },
            "reassign": {
              "required": false
            }
          }
        }
      ]
    },
    "/wc/v1/products/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "Product name."
            },
            "slug": {
              "required": false,
              "description": "Product slug."
            },
            "type": {
              "required": false,
              "enum": [
                "simple",
                "grouped",
                "external",
                "variable",
                "subscription",
                "variable-subscription"
              ],
              "description": "Product type."
            },
            "status": {
              "required": false,
              "enum": [
                "draft",
                "pending",
                "private",
                "publish"
              ],
              "description": "Product status (post status)."
            },
            "featured": {
              "required": false,
              "description": "Featured product."
            },
            "catalog_visibility": {
              "required": false,
              "enum": [
                "visible",
                "catalog",
                "search",
                "hidden"
              ],
              "description": "Catalog visibility."
            },
            "description": {
              "required": false,
              "description": "Product description."
            },
            "short_description": {
              "required": false,
              "description": "Product short description."
            },
            "sku": {
              "required": false,
              "description": "Unique identifier."
            },
            "regular_price": {
              "required": false,
              "description": "Product regular price."
            },
            "sale_price": {
              "required": false,
              "description": "Product sale price."
            },
            "date_on_sale_from": {
              "required": false,
              "description": "Start date of sale price."
            },
            "date_on_sale_to": {
              "required": false,
              "description": "End data of sale price."
            },
            "virtual": {
              "required": false,
              "description": "If the product is virtual."
            },
            "downloadable": {
              "required": false,
              "description": "If the product is downloadable."
            },
            "downloads": {
              "required": false,
              "description": "List of downloadable files."
            },
            "download_limit": {
              "required": false,
              "description": "Amount of times the product can be downloaded."
            },
            "download_expiry": {
              "required": false,
              "description": "Number of days that the customer has up to be able to download the product."
            },
            "download_type": {
              "required": false,
              "enum": [
                "standard",
                "application",
                "music"
              ],
              "description": "Download type, this controls the schema on the front-end."
            },
            "external_url": {
              "required": false,
              "description": "Product external URL. Only for external products."
            },
            "button_text": {
              "required": false,
              "description": "Product external button text. Only for external products."
            },
            "tax_status": {
              "required": false,
              "enum": [
                "taxable",
                "shipping",
                "none"
              ],
              "description": "Tax status."
            },
            "tax_class": {
              "required": false,
              "description": "Tax class."
            },
            "manage_stock": {
              "required": false,
              "description": "Stock management at product level."
            },
            "stock_quantity": {
              "required": false,
              "description": "Stock quantity."
            },
            "in_stock": {
              "required": false,
              "description": "Controls whether or not the product is listed as \"in stock\" or \"out of stock\" on the frontend."
            },
            "backorders": {
              "required": false,
              "enum": [
                "no",
                "notify",
                "yes"
              ],
              "description": "If managing stock, this controls if backorders are allowed."
            },
            "sold_individually": {
              "required": false,
              "description": "Allow one item to be bought in a single order."
            },
            "weight": {
              "required": false,
              "description": "Product weight (lbs)."
            },
            "dimensions": {
              "required": false,
              "description": "Product dimensions."
            },
            "shipping_class": {
              "required": false,
              "description": "Shipping class slug."
            },
            "reviews_allowed": {
              "required": false,
              "description": "Allow reviews."
            },
            "upsell_ids": {
              "required": false,
              "description": "List of up-sell products IDs."
            },
            "cross_sell_ids": {
              "required": false,
              "description": "List of cross-sell products IDs."
            },
            "parent_id": {
              "required": false,
              "description": "Product parent ID."
            },
            "purchase_note": {
              "required": false,
              "description": "Optional note to send the customer after purchase."
            },
            "categories": {
              "required": false,
              "description": "List of categories."
            },
            "tags": {
              "required": false,
              "description": "List of tags."
            },
            "images": {
              "required": false,
              "description": "List of images."
            },
            "attributes": {
              "required": false,
              "description": "List of attributes."
            },
            "default_attributes": {
              "required": false,
              "description": "Defaults variation attributes."
            },
            "variations": {
              "required": false,
              "description": "List of variations."
            },
            "menu_order": {
              "required": false,
              "description": "Menu order, used to custom sort products."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/batch"
      }
    },
    "/wc/v1/reports/sales": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "period": {
              "required": false,
              "enum": [
                "week",
                "month",
                "last_month",
                "year"
              ],
              "description": "Report period."
            },
            "date_min": {
              "required": false,
              "description": "Return sales for a specific start date, the date need to be in the YYYY-MM-AA format."
            },
            "date_max": {
              "required": false,
              "description": "Return sales for a specific end date, the date need to be in the YYYY-MM-AA format."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/reports/sales"
      }
    },
    "/wc/v1/reports/top_sellers": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "period": {
              "required": false,
              "enum": [
                "week",
                "month",
                "last_month",
                "year"
              ],
              "description": "Report period."
            },
            "date_min": {
              "required": false,
              "description": "Return sales for a specific start date, the date need to be in the YYYY-MM-AA format."
            },
            "date_max": {
              "required": false,
              "description": "Return sales for a specific end date, the date need to be in the YYYY-MM-AA format."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/reports/top_sellers"
      }
    },
    "/wc/v1/reports": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/reports"
      }
    },
    "/wc/v1/taxes/classes": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": true,
              "description": "Tax class name."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/taxes/classes"
      }
    },
    "/wc/v1/taxes/classes/(?P<slug>\\w[\\w\\s\\-]*)": {
      "namespace": "wc/v1",
      "methods": [
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/taxes": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "asc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "order",
              "enum": [
                "id",
                "order"
              ],
              "description": "Sort collection by object attribute."
            },
            "class": {
              "required": false,
              "enum": [
                "standard",
                "reduced-rate",
                "zero-rate"
              ],
              "description": "Sort by tax class."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "country": {
              "required": false,
              "description": "Country ISO 3166 code."
            },
            "state": {
              "required": false,
              "description": "State code."
            },
            "postcode": {
              "required": false,
              "description": "Postcode/ZIP."
            },
            "city": {
              "required": false,
              "description": "City name."
            },
            "rate": {
              "required": false,
              "description": "Tax rate."
            },
            "name": {
              "required": false,
              "description": "Tax rate name."
            },
            "priority": {
              "required": false,
              "default": 1,
              "description": "Tax priority."
            },
            "compound": {
              "required": false,
              "default": false,
              "description": "Whether or not this is a compound rate."
            },
            "shipping": {
              "required": false,
              "default": true,
              "description": "Whether or not this tax rate also gets applied to shipping."
            },
            "order": {
              "required": false,
              "description": "Indicates the order that will appear in queries."
            },
            "class": {
              "required": false,
              "default": "standard",
              "enum": [
                "standard",
                "reduced-rate",
                "zero-rate"
              ],
              "description": "Tax class."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/taxes"
      }
    },
    "/wc/v1/taxes/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "country": {
              "required": false,
              "description": "Country ISO 3166 code."
            },
            "state": {
              "required": false,
              "description": "State code."
            },
            "postcode": {
              "required": false,
              "description": "Postcode/ZIP."
            },
            "city": {
              "required": false,
              "description": "City name."
            },
            "rate": {
              "required": false,
              "description": "Tax rate."
            },
            "name": {
              "required": false,
              "description": "Tax rate name."
            },
            "priority": {
              "required": false,
              "description": "Tax priority."
            },
            "compound": {
              "required": false,
              "description": "Whether or not this is a compound rate."
            },
            "shipping": {
              "required": false,
              "description": "Whether or not this tax rate also gets applied to shipping."
            },
            "order": {
              "required": false,
              "description": "Indicates the order that will appear in queries."
            },
            "class": {
              "required": false,
              "enum": [
                "standard",
                "reduced-rate",
                "zero-rate"
              ],
              "description": "Tax class."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/taxes/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "country": {
              "required": false,
              "description": "Country ISO 3166 code."
            },
            "state": {
              "required": false,
              "description": "State code."
            },
            "postcode": {
              "required": false,
              "description": "Postcode/ZIP."
            },
            "city": {
              "required": false,
              "description": "City name."
            },
            "rate": {
              "required": false,
              "description": "Tax rate."
            },
            "name": {
              "required": false,
              "description": "Tax rate name."
            },
            "priority": {
              "required": false,
              "description": "Tax priority."
            },
            "compound": {
              "required": false,
              "description": "Whether or not this is a compound rate."
            },
            "shipping": {
              "required": false,
              "description": "Whether or not this tax rate also gets applied to shipping."
            },
            "order": {
              "required": false,
              "description": "Indicates the order that will appear in queries."
            },
            "class": {
              "required": false,
              "enum": [
                "standard",
                "reduced-rate",
                "zero-rate"
              ],
              "description": "Tax class."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/taxes/batch"
      }
    },
    "/wc/v1/webhooks/(?P<webhook_id>[\\d]+)/deliveries": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wc/v1/webhooks/(?P<webhook_id>[\\d]+)/deliveries/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        }
      ]
    },
    "/wc/v1/webhooks": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            },
            "page": {
              "required": false,
              "default": 1,
              "description": "Current page of the collection."
            },
            "per_page": {
              "required": false,
              "default": 10,
              "description": "Maximum number of items to be returned in result set."
            },
            "search": {
              "required": false,
              "description": "Limit results to those matching a string."
            },
            "after": {
              "required": false,
              "description": "Limit response to resources published after a given ISO8601 compliant date."
            },
            "before": {
              "required": false,
              "description": "Limit response to resources published before a given ISO8601 compliant date."
            },
            "exclude": {
              "required": false,
              "default": [],
              "description": "Ensure result set excludes specific ids."
            },
            "include": {
              "required": false,
              "default": [],
              "description": "Limit result set to specific ids."
            },
            "offset": {
              "required": false,
              "description": "Offset the result set by a specific number of items."
            },
            "order": {
              "required": false,
              "default": "desc",
              "enum": [
                "asc",
                "desc"
              ],
              "description": "Order sort attribute ascending or descending."
            },
            "orderby": {
              "required": false,
              "default": "date",
              "enum": [
                "date",
                "id",
                "include",
                "title",
                "slug"
              ],
              "description": "Sort collection by object attribute."
            },
            "filter": {
              "required": false,
              "description": "Use WP Query arguments to modify the response; private query vars require appropriate authorization."
            },
            "status": {
              "required": false,
              "default": "all",
              "enum": [
                "all",
                "active",
                "paused",
                "disabled"
              ],
              "description": "Limit result set to webhooks assigned a specific status."
            }
          }
        },
        {
          "methods": [
            "POST"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "A friendly name for the webhook."
            },
            "status": {
              "required": false,
              "default": "active",
              "enum": [
                "active",
                "paused",
                "disabled"
              ],
              "description": "Webhook status."
            },
            "topic": {
              "required": true
            },
            "secret": {
              "required": true
            },
            "delivery_url": {
              "required": true
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/webhooks"
      }
    },
    "/wc/v1/webhooks/(?P<id>[\\d]+)": {
      "namespace": "wc/v1",
      "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "context": {
              "required": false,
              "default": "view",
              "enum": [
                "view",
                "edit"
              ],
              "description": "Scope under which the request is made; determines fields present in response."
            }
          }
        },
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "A friendly name for the webhook."
            },
            "status": {
              "required": false,
              "enum": [
                "active",
                "paused",
                "disabled"
              ],
              "description": "Webhook status."
            },
            "topic": {
              "required": false,
              "description": "Webhook topic."
            },
            "secret": {
              "required": false,
              "description": "Secret key used to generate a hash of the delivered webhook and provided in the request headers. This will default is a MD5 hash from the current user's ID|username if not provided."
            }
          }
        },
        {
          "methods": [
            "DELETE"
          ],
          "args": {
            "force": {
              "required": false,
              "default": false,
              "description": "Required to be true, as resource does not support trashing."
            }
          }
        }
      ]
    },
    "/wc/v1/webhooks/batch": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": {
            "name": {
              "required": false,
              "description": "A friendly name for the webhook."
            },
            "status": {
              "required": false,
              "enum": [
                "active",
                "paused",
                "disabled"
              ],
              "description": "Webhook status."
            },
            "topic": {
              "required": false,
              "description": "Webhook topic."
            },
            "secret": {
              "required": false,
              "description": "Secret key used to generate a hash of the delivered webhook and provided in the request headers. This will default is a MD5 hash from the current user's ID|username if not provided."
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/webhooks/batch"
      }
    },
    "/wc/v1/orders/ids": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/orders/ids"
      }
    },
    "/wc/v1/orders/updated": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/orders/updated"
      }
    },
    "/wc/v1/customers/ids": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/customers/ids"
      }
    },
    "/wc/v1/customers/updated": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/customers/updated"
      }
    },
    "/wc/v1/products/ids": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/ids"
      }
    },
    "/wc/v1/products/updated": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/products/updated"
      }
    },
    "/wc/v1/metorik/info": {
      "namespace": "wc/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/metorik/info"
      }
    },
    "/wc/v1/metorik/importing": {
      "namespace": "wc/v1",
      "methods": [
        "POST",
        "PUT",
        "PATCH"
      ],
      "endpoints": [
        {
          "methods": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/wc/v1/metorik/importing"
      }
    },
    "/yoast/v1": {
      "namespace": "yoast/v1",
      "methods": [
        "GET"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": {
            "namespace": {
              "required": false,
              "default": "yoast/v1"
            },
            "context": {
              "required": false,
              "default": "view"
            }
          }
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/yoast/v1"
      }
    },
    "/yoast/v1/configurator": {
      "namespace": "yoast/v1",
      "methods": [
        "GET",
        "POST"
      ],
      "endpoints": [
        {
          "methods": [
            "GET"
          ],
          "args": []
        },
        {
          "methods": [
            "POST"
          ],
          "args": []
        }
      ],
      "_links": {
        "self": "https://poststatus.com/wp-json/yoast/v1/configurator"
      }
    }
  },
  "_links": {
    "help": [
      {
        "href": "http://v2.wp-api.org/"
      }
    ]
  }
}
[
  {
    "id": 30103,
    "date": "2016-10-24T08:39:19",
    "date_gmt": "2016-10-24T13:39:19",
    "guid": {
      "rendered": "https://poststatus.com/?p=30103"
    },
    "modified": "2016-10-24T08:39:19",
    "modified_gmt": "2016-10-24T13:39:19",
    "slug": "wordpress-rest-api-core-draft-podcast",
    "type": "post",
    "link": "https://poststatus.com/wordpress-rest-api-core-draft-podcast/",
    "title": {
      "rendered": "WordPress REST API in Core — Draft podcast"
    },
    "content": {
      "rendered": "<p>Welcome to the Post Status <a href=\"https://poststatus.com/category/draft\">Draft podcast</a>, which you can find <a href=\"https://itunes.apple.com/us/podcast/post-status-draft-wordpress/id976403008\">on iTunes</a>, <a href=\"https://play.google.com/music/m/Ih5egfxskgcec4qadr3f4zfpzzm?t=Post_Status__Draft_WordPress_Podcast\">Google Play</a>, <a href=\"http://www.stitcher.com/podcast/krogsgard/post-status-draft-wordpress-podcast\">Stitcher</a>, and <a href=\"http://simplecast.fm/podcasts/1061/rss\">via RSS</a> for your favorite podcatcher. Post Status Draft is hosted by Joe Hoyle — the CTO of Human Made — and Brian Krogsgard.</p>\n<p><span style=\"font-weight: 400;\">In this episode, Joe and Brian talk about the WordPress REST API and the core approval process</span></p>\n<!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->\n<audio class=\"wp-audio-shortcode\" id=\"audio-30103-1\" preload=\"none\" style=\"width: 100%; visibility: hidden;\" controls=\"controls\"><source type=\"audio/mpeg\" src=\"https://audio.simplecast.com/50492.mp3?_=1\" /><a href=\"https://audio.simplecast.com/50492.mp3\">https://audio.simplecast.com/50492.mp3</a></audio>\n<p><a href=\"http://audio.simplecast.com/50492.mp3\">Direct Download</a></p>\n<h3>Topics</h3>\n<ul>\n<li>The API’s journey</li>\n<li>How Core projects work</li>\n<li>What to know about the API know that it’s in trunk</li>\n<li>What that means for the future of the API</li>\n</ul>\n<h3>Links</h3>\n<ul>\n<li><a href=\"https://apisyouwonthate.com/\">Build APIs you won’t hate</a></li>\n<li><a href=\"http://wp-api.org/index-deprecated.html\">Legacy v1 API</a></li>\n<li><a href=\"https://getmoxied.net/lean/\">LEAN</a></li>\n<li><a href=\"http://99percentinvisible.org/episode/mcmansion-hell-devil-details/\">McMansion Hell: The devil is in the details</a></li>\n</ul>\n<h3>Sponsor: OptinMonster</h3>\n<p><span style=\"font-weight: 400;\"><a href=\"http://optinmonster.com/the-new-google-mobile-friendly-rules-for-popups/\">OptinMonster</a> allows you to convert visitors into subscribers. You can easily create & A/B test beautiful lead capture forms without a developer. Check out <a href=\"http://optinmonster.com/\">OptinMonster</a> today!</span></p>\n<p> </p>\n",
      "protected": false
    },
    "excerpt": {
      "rendered": "<p>In this episode, Joe and Brian talk about the WordPress REST API and the core approval process</p>\n",
      "protected": false
    },
    "author": 590,
    "featured_media": 8694,
    "comment_status": "open",
    "ping_status": "closed",
    "sticky": false,
    "format": "standard",
    "categories": [
      195,
      196
    ],
    "tags": [
      178
    ],
    "_links": {
      "self": [
        {
          "href": "https://poststatus.com/wp-json/wp/v2/posts/30103"
        }
      ],
      "collection": [
        {
          "href": "https://poststatus.com/wp-json/wp/v2/posts"
        }
      ],
      "about": [
        {
          "href": "https://poststatus.com/wp-json/wp/v2/types/post"
        }
      ],
      "author": [
        {
          "embeddable": true,
          "href": "https://poststatus.com/wp-json/wp/v2/users/590"
        }
      ],
      "replies": [
        {
          "embeddable": true,
          "href": "https://poststatus.com/wp-json/wp/v2/comments?post=30103"
        }
      ],
      "version-history": [
        {
          "href": "https://poststatus.com/wp-json/wp/v2/posts/30103/revisions"
        }
      ],
      "wp:featuredmedia": [
        {
          "embeddable": true,
          "href": "https://poststatus.com/wp-json/wp/v2/media/8694"
        }
      ],
      "wp:attachment": [
        {
          "href": "https://poststatus.com/wp-json/wp/v2/media?parent=30103"
        }
      ],
      "wp:term": [
        {
          "taxonomy": "category",
          "embeddable": true,
          "href": "https://poststatus.com/wp-json/wp/v2/categories?post=30103"
        },
        {
          "taxonomy": "post_tag",
          "embeddable": true,
          "href": "https://poststatus.com/wp-json/wp/v2/tags?post=30103"
        }
      ],
      "curies": [
        {
          "name": "wp",
          "href": "https://api.w.org/{rel}",
          "templated": true
        }
      ]
    }
  }
]

Why use the WP Rest API?

  • JSON is easy to work with
  • Just data over the wire (not templates)
  • Use data inside or outside of WordPress plugins/themes
  • Create decoupled interfaces / micro-apps
  • Allow third parties to access/consume your data

Who's Using the WP REST API?

The informational website dedicated to

the 2017 "A Day of REST" conference in Boston, MA. The site includes an interface to view the RESTful data that's used to create each page

Who's Using the WP REST API?

StoryCorps.me enables anyone to create and share powerful stories. Just launched as an iOS and Android app, the website that provides the app infrastructure is built on WordPress, utilizing the WordPress REST API.

Who's Using the WP REST API?

The Bay Area News Digest native apps use a custom dashboard created to curate content from the WP Rest API and convert the data to be rendered by the native iOS and Android apps.

Who's Using the WP REST API?

The ustwo.com frontend is a React.js single-page application that serves WordPress content via the WP REST API using custom endpoints.

Real-time map of Nomads with location updates using Facebook, Swarm, Twitter or Instagram locations.

Proudly built by Human Made.

Who's Using the WP REST API?

Who's Using the WP REST API?

Jetpack 4.3 was released in September, 2016 and was built with React, Redux and includes a custom endpoint extending the WP REST API

Read More

Enabling the WP REST API

WP REST API Custom Post Type &

Taxonomy Support

'show_in_rest'       => true,
'rest_base'          => 'genre',
'rest_controller_class' => 'WP_REST_Terms_Controller',

In the register_post_type $args

In the register_taxonomy $args

'show_in_rest'       => true,
'rest_base'          => 'movies',
'rest_controller_class' => 'WP_REST_Posts_Controller',

Add Fields to Endpoints

function register_post_custom_field() {
    register_api_field( 'post', 'director',
        array(
           'get_callback'    => 'get_custom_field',
           'update_callback' => null,
           'schema'          => null,
        )
    );
}
function get_custom_field( $object, $field_name, $request ) {
    return get_post_meta( $object[ 'id' ], $field_name, true );
}

Add New Endpoints

add_action( 'rest_api_init', function () {
    register_rest_route( 'myplugin/v1', '/director/(?P\d+)', array(
        'methods' => 'GET',
        'callback' => 'get_latest_movie_title_by_director'
    ));
});
function get_latest_movie_title_by_director( $data ) {
     $posts = new WP_Query( array(
         'director' => $data['id'],
     ));
     if ( empty( $posts ) ) {
         return null;
     }
     return $posts[0]->post_title;
}

Helpful Tools & Resources

React

https://facebook.github.io/react/

 

A JavaScript library for building user interfaces

What is REACT?

  • Open Source JavaScript library created and maintained by Facebook
     
  • Declarative, component-based architecture
     
  • Uses JSX which compiles down to JavaScript
     
  • Uses "props" and "state" to manage state (keep truth out of the DOM)

Why Use React?

  • Components are the future of the web
  • It makes writing JavaScript easy
  • It feels like it "belongs" in natural web development
  • It's fast and efficient (virtual DOM)
  • It's isomorphic (can use on client, server, even native mobile and desktop)
  • Used and Maintained by Facebook

Who's Using It?

Facebook created and maintains React and has been using it in production since 2011.

Who's Using It?

Jetpack 4.3 was released in September, 2016 and was built with React, Redux and includes a custom endpoint extending the WP REST API

Read More

Who's Using It?

Slack brings all your communication together in one place. It's real-time messaging, archiving and search for modern teams.

Read more

Who's Using It?

A single interface to manage all your WordPress.com or Jetpack-enabled sites, built with the latest web technologies and used by millions of people — and now it's open source.

Read More

Who's Using It?

Netflix uses React and Redux in various environments including the web, native and TV connected devices.

Read More

 

How React Works

First things first...what is DOM?

How React Works

Initial Page Render

  • Represent page elements using virtual DOM
    • DOM (Document Object Model) - tree of objects that renders in web browsers
       
  • Defines an initial state for each page element
     
  • Use "Virtual DOM" to render actual HTML to the DOM
    • Light-weight copy of our DOM. - We can change it as we want and then save to our real DOM tree

How React Works

State Changes

  • Re-render entire React Virtual DOM
     
  • Diff old and new Virtual DOMs
    • use diff to compute minimum set of HTML DOM changes to render the changes
       
  • Apply changes to render new state in the browser

How React Works

Helpful Tools & Resources

Basic Usage

Creating a Component

Basic Usage

Composing Components & Passing Data via Props

Basic Usage

Handling DOM Events

Basic Usage

Incorporating WP REST API Data

Redux

http://redux.js.org/

 

Redux is a predictable state container for JavaScript apps

Who's Using Redux?

Jetpack 4.3 was released in September, 2016 and was built with React, Redux and includes a custom endpoint extending the WP REST API

Read More

Who's Using Redux?

Slack brings all your communication together in one place. It's real-time messaging, archiving and search for modern teams.

Read more

 

Who's Using Redux?

A single interface to manage all your WordPress.com or Jetpack-enabled sites, built with the latest web technologies and used by millions of people — and now it's open source.

Read More

 

Who's Using Redux?

Netflix uses React and Redux in various environments including the web, native and TV connected devices.

Read More

 

What is Redux?

  • A JavaScript state manager
    • Essentially a client-side database
       
  • Small Open Source library, created by Dan Abramov
     
  • Promotes a strict uni-directional data flow
    • Store - object tree that maintains app state
    • Actions - descriptions of an event
    • Reducers - respond to actions, update the store

Why Use Redux?

  • State is HARD to manage, easier with Redux
     
  • Makes application state predictable
     
  • Widely used in large applications
     
  • Amazing documentation / debugging tools
     
  • Isomorphic
    • can use on server, client, native mobile & desktop
       
  • Can be used with/without React (Angular, Ember, etc)
     
  • Can be used in or outside of full Single Page Apps

How Redux Works

Store

  • Contains the State Tree object
  • Key/Value pairs
    • values can be strings, boolean, objects, arrays

How Redux Works

Store, Actions, Reducers

  • Store: entire app state is stored in a single object tree
     
  • Actions: only way to change the state tree is to emit an action, an object describing what happened.
     
  • Reducers: to specify how the actions transform the state tree, you write pure reducers.

How Redux Works

Store, Actions, Reducers

How Redux Works

How Redux Works

function setActiveArticle( id ) {
    return {
        type: ARTICLE_SET_ACTIVE,
        activeArticle: id
    }
}

Actions

  • Just a function
    • Conceptually similar to adding an action or filter in WordPress
       
  • Describes what happened
     
  • Must have a "type"
     
  • Can contain any additional information

How Redux Works

export default function articles( state = initialState, action ) {
	switch ( action.type ) {
		case ARTICLE_SET_ACTIVE:
			return Object.assign({}, state, {
				isFetching: false,
				activeArticle: action.activeArticle
			});
		default:
			return state;
	}
}

Reducer

  • Listens to actions
  • Copies the state tree, modifies & returns new tree
    • or returns unmodified state
    • Conceptually similar to a WordPress filter callback

Why Use It?

Time Travel!

Demo App