Types: API types: - serializable PODs - apiGroup/kind - all local - no I/O - to/from json - to/from generic unstructured object - metadata, kind, apiGroup Resources: - URL space - apiGroup/plurals - mostly common CRUD operations with API types - some extra subtypes - some extra operations - all HTTP REST APIs, so need httpclient - httpclient needs auth - each one is a top-level resource (apiGroup, plural), with methods - some namespaced, some not (known statically) - generic resource driven by openapi discovery info "other API operations": - auth, discovery, etc Errors: An example from the golang world: Expected error: <*errors.StatusError | 0xc42050e360>: { ErrStatus: { TypeMeta: {Kind: "", APIVersion: ""}, ListMeta: {SelfLink: "", ResourceVersion: "", Continue: ""}, Status: "Failure", Message: "the server could not find the requested resource (post sealedsecrets.bitnami.com)", Reason: "NotFound", Details: { Name: "", Group: "bitnami.com", Kind: "sealedsecrets", UID: "", Causes: [ { Type: "UnexpectedServerResponse", Message: "404 page not found", Field: "", }, ], RetryAfterSeconds: 0, }, Code: 404, }, } the server could not find the requested resource (post sealedsecrets.bitnami.com)