text: Title: Ensure all external API types have descriptions
  Body: Working on this issue will teach you about:
  - codebase structure for APIs and testing scripts
  - how API types are written for various k8s objects like deployments, pods, etc
  - the `hack/verify-*` script pattern that's consistently used across k8s
  
  ### Background
  
  
  External API types are defined in `types.go` files in:
  -  [`staging/src/k8s.io/api/*/v*/types.go`]( https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/api)
  - [`staging/src/k8s.io/apiextensions-apiserver/pkg/apis/*/v*/types.go`](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions)
  - [`staging/src/k8s.io/kube-aggregator/pkg/apis/*/v*/types.go`](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration)
  
  ### Problem
  
  There are many external API types that have missing descriptions/comments today (issue surfaced in https://github.com/kubernetes/kubernetes/pull/99621).
  
  For example - in the snippet below, the struct `NamespaceCondition` in file `staging/src/k8s.io/api/core/v1/types.go` does not have descriptions for the `lastTransitionTime`, `reason` and `message` fields.
  
  Note - the comment lines with `+` prefix are not considered as valid descriptions.
  
  https://github.com/kubernetes/kubernetes/blob/2695ef3f1b0e2fc51ffb1bcb8491a4165587a089/staging/src/k8s.io/api/core/v1/types.go#L5009-L5021
  
  The types.go files that have missing descriptions are listed in [`hack/.descriptions_failures`](https://github.com/kubernetes/kubernetes/blob/master/hack/.descriptions_failures).
  
  We need to add descriptions to these types.go files and eventually remove `hack/.descriptions_failures`.
  
  ### Solution
  
  You can follow this workflow to add miss descriptions for API types.
  
  - Select a `types.go` file from the list below.
  - Post a comment on this issue that you are working on fixing the file so that others don't start working on it too.
  - Remove the line for this file from [`hack/.descriptions_failures`](https://github.com/kubernetes/kubernetes/blob/master/hack/.descriptions_failures).
  - Run the [`hack/verify-description.sh`](https://github.com/kubernetes/kubernetes/blob/master/hack/verify-description.sh) script. This script will display an error with missing descriptions for the API types in the types.go file.
  - Add the missing descriptions for the types displayed by the script.
  - Run the [`hack/verify-description.sh`](https://github.com/kubernetes/kubernetes/blob/master/hack/verify-description.sh) script again. There should be no error displayed.
  - Update autogenerated files by running the following scripts:
    - [`hack/update-generated-protobuf.sh`](https://github.com/kubernetes/kubernetes/blob/master/hack/update-generated-protobuf.sh)
    - [`hack/update-openapi-spec.sh`](https://github.com/kubernetes/kubernetes/blob/master/hack/update-openapi-spec.sh)
    - [`hack/update-generated-swagger-docs.sh`](https://github.com/kubernetes/kubernetes/blob/master/hackupdate-generated-swagger-docs.sh)
  - Open a Pull Request with your changes. In the PR body, link to this issue by writing `Ref: #99675`. Do _not_ write `Fixes #99657` because that will autoclose this issue.
  
  #### How to ask for help
  
  If you need help or have questions, please ask in the _#kubernetes-contributors_ channel on the k8s slack (see [slack.k8s.io](https://slack.k8s.io/) for an invite).
  
  ### Files to fix
  
  - [ ] ./staging/src/k8s.io/api/apiserverinternal/v1alpha1/types.go
  - [ ] ./staging/src/k8s.io/api/apps/v1/types.go
  - [ ] ./staging/src/k8s.io/api/apps/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/apps/v1beta2/types.go
  - [ ] ./staging/src/k8s.io/api/authentication/v1/types.go
  - [ ] ./staging/src/k8s.io/api/authentication/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/authorization/v1/types.go
  - [ ] ./staging/src/k8s.io/api/authorization/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/autoscaling/v2beta2/types.go
  - [ ] ./staging/src/k8s.io/api/certificates/v1/types.go
  - [ ] ./staging/src/k8s.io/api/certificates/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/core/v1/types.go
  - [x] ./staging/src/k8s.io/api/events/v1/types.go (#99681)
  - [x] ./staging/src/k8s.io/api/events/v1beta1/types.go (#99681)
  - [ ] ./staging/src/k8s.io/api/extensions/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/flowcontrol/v1alpha1/types.go
  - [ ] ./staging/src/k8s.io/api/flowcontrol/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/imagepolicy/v1alpha1/types.go
  - [ ] ./staging/src/k8s.io/api/networking/v1/types.go
  - [ ] ./staging/src/k8s.io/api/networking/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/api/policy/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1/types.go
  - [ ] ./staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/types.go
  - [ ] ./staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1/types.go
  - [ ] ./staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/types.go
  