old_contents: # Copyright (C) 2017 Google Inc.
  # Licensed under http://www.apache.org/licenses/LICENSE-2.0 <see LICENSE file>
  
  scope = "Private Program"
  description = """
    User with authorization to peform administrative tasks such as associating
    users to roles within the scope of of a program.<br/><br/>When a person
    creates a program they are automatically given the ProgramOwner role. This
    allows them to Edit, Delete, or Map objects to the Program. It also allows
    them to add people and assign them roles when their programs are private.
    ProgramOwner is the most powerful role.
    """
  permissions = {
      "read": [
          "ObjectDocument",
          "ObjectPerson",
          "Program",
          "ProgramControl",
          "Relationship",
          "UserRole",
          "Context",
      ],
      "create": [
          "ObjectDocument",
          "ObjectPerson",
          "ProgramControl",
          "Relationship",
          "UserRole",
          "Audit",
      ],
      "view_object_page": [
          "__GGRC_ALL__"
      ],
      "update": [
          "ObjectDocument",
          "ObjectPerson",
          "Program",
          "ProgramControl",
          "Relationship",
          "UserRole"
      ],
      "delete": [
          "ObjectDocument",
          "ObjectPerson",
          "Program",
          "ProgramControl",
          "Relationship",
          "UserRole",
      ]
  }
  
new_contents: # Copyright (C) 2017 Google Inc.
  # Licensed under http://www.apache.org/licenses/LICENSE-2.0 <see LICENSE file>
  
  scope = "Private Program"
  description = """
    User with authorization to peform administrative tasks such as associating
    users to roles within the scope of of a program.<br/><br/>When a person
    creates a program they are automatically given the ProgramOwner role. This
    allows them to Edit, Delete, or Map objects to the Program. It also allows
    them to add people and assign them roles when their programs are private.
    ProgramOwner is the most powerful role.
    """
  permissions = {
      "read": [
          "ObjectDocument",
          "ObjectPerson",
          "Program",
          "ProgramControl",
          "Relationship",
          "UserRole",
          "Context",
      ],
      "create": [
          "ObjectDocument",
          "ObjectPerson",
          "ProgramControl",
          "Relationship",
          "UserRole",
          "Audit",
          "Snapshot",
      ],
      "view_object_page": [
          "__GGRC_ALL__"
      ],
      "update": [
          "ObjectDocument",
          "ObjectPerson",
          "Program",
          "ProgramControl",
          "Relationship",
          "UserRole"
      ],
      "delete": [
          "ObjectDocument",
          "ObjectPerson",
          "Program",
          "ProgramControl",
          "Relationship",
          "UserRole",
      ]
  }
  
subject: Add support for creating snapshots for program owner