|  `IsOk()`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` whose status is OK.  | 
  
  
    |  `IsOkAndHolds(m)`  | 
    
      `argument` is an `absl::StatusOr` whose status is OK and whose inner value matches matcher `m`.
      See also [`ASSERT_OK_AND_ASSIGN`](http://google3/testing/base/public/gmock_utils/status-matchers.h?q=symbol:ASSERT_OK_AND_ASSIGN).
     | 
  
  
    |  `StatusHasPayload()`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` whose status is not OK and which has any payload.  | 
  
  
    |  `StatusHasPayload()`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` whose status is not OK and which has a payload of type `ProtoType`.  | 
  
  
    |  `StatusHasPayload(m)`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` whose status is not OK and which has a payload of type `ProtoType` that matches `m`.  | 
  
  
    |  `StatusIs(s, c, m)`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` where: the error space matches `s`, the status code matches `c`, and the error message matches `m`.  | 
  
  
    |  `StatusIs(c, m)`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` where: the error space is canonical, the status code matches `c`, and the error message matches `m`.  | 
  
  
    |  `StatusIs(c)`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` where: the error space is canonical, and the status code matches `c`.  | 
  
  
    |  `CanonicalStatusIs(c, m)`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` where: the canonical status code matches `c`, and the error message matches `m`.  | 
  
  
    |  `CanonicalStatusIs(c)`  | 
     `argument` is a `absl::Status` or `absl::StatusOr` where: the canonical status code matches `c`.  | 
  
The two- and one-argument version of StatusIs use util::GetErrorSpaceForEnum to
determine the error space. If the error code matcher is not an enum with an
associated ErrorSpace, then the canonical space will be used.