# Define owners for the contents of this directory and creation of
# subdirectories for new API levels. Each subdirectory must have its own
# `OWNERS` file with `setnoparent` to override this one. (Specifically, the
# roller account access below must not be inherited.) The recommended way to
# do this is to `include` the appropriate `/sdk/history/*_API_LEVEL_OWNERS`
# file.

include /sdk/history/FROZEN_API_LEVEL_OWNERS

# Allow the platform version roller to create subdirectories for new API levels.
# Each frozen API level subdirectory must include FROZEN_API_LEVEL_OWNERS to
# prevent the roller from being allowed to modify it.
global-integration-roller@fuchsia-infra.iam.gserviceaccount.com
