Registration Features - MVC
## Release Notes
Starting with GitLab version 14.1, [Registration Features](https://docs.gitlab.com/ee/development/service_ping/index.html#registration-features-program) will give free self-managed users running GitLab EE can receive paid features by registering with GitLab and sending us activity data via [Service Ping](https://docs.gitlab.com/ee/development/service_ping/index.html#what-is-service-ping).
The paid feature available in this offering is [Email from GitLab](https://docs.gitlab.com/ee/tools/email.html). Administrators can use this [Premium](https://about.gitlab.com/pricing/premium/) feature to streamline their workflow by emailing all or some instance users directly from the Admin Area.
## Summary
We’re going to launch an MVC of a new offering internally called “Registration Features” for self-managed users (free and paid). This offering will give users of EE (paid or free) the ability to turn on a specific paid feature set in exchange for turning on Usage Ping.
Reference: https://gitlab.com/groups/gitlab-org/-/epics/6274
## MVC
The MVC approach is very light, we will tie the ability to turn on a paid feature setting when Service Ping (fka Usage Ping) is enabled.
### Feature set
When the user enables Service Ping, we will provide the ability to turn on the `Registration Features` which currently includes [Email from GitLab](https://docs.gitlab.com/ee/tools/email.html)
### Flow
1. User installs EE version [xx]+
1. Service Ping (fka Usage Ping) is default `On` _(current behavior)_
1. In admin settings, as a sub-setting of Usage Ping, there is a new setting: `Team Performance Features: on/off` _(new)_
1. This new setting is default `Off` and only available to flip to `On` if Service Ping is set to `On` _(new)_
1. If Service Ping is set to `Off` , the new setting becomes unavailable for selection and automatically set to `No` where it was previously flipped `On` _(new)_
1. A tooltip or small text is displayed near the new setting with explanations in the various states about the ability set it to `On` as it relates to Service Ping _(new)_
## Success Criteria
1. [x] A new sub-setting of Service Ping (fka Usage Ping) is created and has conditional behavior based on Service Ping status
1. [x] UX: https://gitlab.com/gitlab-org/gitlab/-/issues/333015
1. [x] FE: https://gitlab.com/gitlab-org/gitlab/-/issues/333018
1. [x] When the new sub-setting is `On`, the [feature set](https://gitlab.com/groups/gitlab-org/-/epics/6144#feature-set) is provisioned in the instance
1. [x] BE: https://gitlab.com/gitlab-org/gitlab/-/issues/333019
1. [x] When Service Ping is `Off`: https://gitlab.com/gitlab-org/gitlab/-/issues/333021
1. The new sub-setting is set to `Off`
1. The new sub-setting is disabled for selection
1. The instance no longer receives the [paid feature](https://gitlab.com/groups/gitlab-org/-/epics/6144#feature-set)
1. [x] Helpful text is provided to explain the conditions of the `On/Off` toggle for the new sub-setting https://gitlab.com/gitlab-org/gitlab/-/issues/333022
## Designs
Note, the designs below are **demonstrating the wrong feature**. We have since changed the feature being offered, but I'm leaving these designs for reference re: format (spacing, font, color, etc).
1. Design for "not allowed" state: https://gitlab.com/gitlab-org/gitlab/-/issues/333015/designs/not-allowed.png
1. Design for "allowed" state: https://gitlab.com/gitlab-org/gitlab/-/issues/333015/designs/allowed.png
### Design with new feature

## Docs Updates
1. [x] Creation of `Registration Features` subsection on Usage Ping docs page
1. Docs issue: https://gitlab.com/gitlab-org/gitlab/-/issues/334428
1. Docs MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64735
epic