Found 29 schema versions.
{ u'account_dim': { u'columns': [ { u'description': u'Unique surrogate id for an account',
                                    u'name': u'id',
                                    u'type': u'bigint'},
                                  { u'description': u'Primary key for this entry in the Canvas accounts table',
                                    u'name': u'canvas_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Name of the account',
                                    u'length': 256,
                                    u'name': u'name',
                                    u'type': u'varchar'},
                                  { u'description': u'Depth of the account in the hierarchy.  The root node is at 0.',
                                    u'name': u'depth',
                                    u'type': u'int'},
                                  { u'description': u'Workflow status indicating that account is [deleted] or [active]',
                                    u'length': 256,
                                    u'name': u'workflow_state',
                                    u'type': u'varchar'},
                                  { u'description': u"Name of this account's parent account.  This field will be NULL for the root account.",
                                    u'length': 256,
                                    u'name': u'parent_account',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent account.  This field will be NULL for the root account.",
                                    u'name': u'parent_account_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's grand parent account.  This field will be NULL for the root account and all accounts at level 1.",
                                    u'length': 256,
                                    u'name': u'grandparent_account',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's grand parent account.  This field will be NULL for the root account and all subaccounts at level 1.",
                                    u'name': u'grandparent_account_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Name of the root account associated with this account.',
                                    u'length': 256,
                                    u'name': u'root_account',
                                    u'type': u'varchar'},
                                  { u'description': u'Id of the root account associated with this account.',
                                    u'name': u'root_account_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 1.  If this account is a level 1 account, this will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount1',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 1.  If this account is a level 1 account, this will be the id of this account.",
                                    u'name': u'subaccount1_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 2.  If this account is a level 2 account, subaccount2 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount2',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 2.  If this account is a level 2 account, subaccount2_id will be the id of this account.",
                                    u'name': u'subaccount2_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 3.  If this account is a level 3 account, subaccount3 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount3',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 3.  If this account is a level 3 account, subaccount3_id will be the id of this account.",
                                    u'name': u'subaccount3_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 4.  If this account is a level 4 account, subaccount4 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount4',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 4.  If this account is a level 4 account, subaccount4_id will be the id of this account.",
                                    u'name': u'subaccount4_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 5.  If this account is a level 5 account, subaccount5 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount5',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 5.  If this account is a level 5 account, subaccount5_id will be the id of this account.",
                                    u'name': u'subaccount5_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 6.  If this account is a level 6 account, subaccount6 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount6',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 6.  If this account is a level 6 account, subaccount6_id will be the id of this account.",
                                    u'name': u'subaccount6_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 7.  If this account is a level 7 account, subaccount7 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount7',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 7.  If this account is a level 7 account, subaccount7_id will be the id of this account.",
                                    u'name': u'subaccount7_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 8.  If this account is a level 8 account, subaccount8 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount8',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 8.  If this account is a level 8 account, subaccount8_id will be the id of this account.",
                                    u'name': u'subaccount8_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 9.  If this account is a level 9 account, subaccount9 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount9',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 9.  If this account is a level 9 account, subaccount9_id will be the id of this account.",
                                    u'name': u'subaccount9_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 10.  If this account is a level 10 account, subaccount10 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount10',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 10.  If this account is a level 10 account, subaccount10_id will be the id of this account.",
                                    u'name': u'subaccount10_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 11.  If this account is a level 11 account, subaccount11 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount11',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 11.  If this account is a level 11 account, subaccount11_id will be the id of this account.",
                                    u'name': u'subaccount11_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 12.  If this account is a level 12 account, subaccount12 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount12',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 12.  If this account is a level 12 account, subaccount12_id will be the id of this account.",
                                    u'name': u'subaccount12_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 13.  If this account is a level 13 account, subaccount13 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount13',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 13.  If this account is a level 13 account, subaccount13_id will be the id of this account.",
                                    u'name': u'subaccount13_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 14.  If this account is a level 14 account, subaccount14 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount14',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 14.  If this account is a level 14 account, subaccount14_id will be the id of this account.",
                                    u'name': u'subaccount14_id',
                                    u'type': u'bigint'},
                                  { u'description': u"Name of this account's parent at subaccount level 15.  If this account is a level 15 account, subaccount15 will be the name of this account.",
                                    u'length': 256,
                                    u'name': u'subaccount15',
                                    u'type': u'varchar'},
                                  { u'description': u"Id of this account's parent at subaccount level 15.  If this account is a level 15 account, subaccount15_id will be the id of this account.",
                                    u'name': u'subaccount15_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Correlated id for the record for this course in the SIS system (assuming SIS integration is configured)',
                                    u'length': 256,
                                    u'name': u'sis_source_id',
                                    u'type': u'varchar'}],
                    u'description': u'An account object in the Canvas system.  Accounts are most often used to represent a hierarchy of colleges, schools, departments, campuses, etc.',
                    u'dw_type': u'dimension',
                    u'hints': { },
                    u'incremental': False,
                    u'tableName': u'account_dim'},
  u'assignment_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the assignment.',
                                       u'name': u'id',
                                       u'type': u'bigint'},
                                     { u'description': u'Primary key for this record in the Canvas assignments table.',
                                       u'name': u'canvas_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the course associated with this assignment',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'course',
                                                       u'role': u'course'},
                                       u'name': u'course_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Title of the assignment',
                                       u'length': 256,
                                       u'name': u'title',
                                       u'type': u'varchar'},
                                     { u'description': u'Long description of the assignment',
                                       u'name': u'description',
                                       u'type': u'text'},
                                     { u'description': u'Timestamp for when the assignment is due',
                                       u'name': u'due_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Timestamp for when the assignment is unlocked or visible to the user',
                                       u'name': u'unlock_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Timestamp for when the assignment is locked',
                                       u'name': u'lock_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Total points possible for the assignment',
                                       u'name': u'points_possible',
                                       u'type': u'double precision'},
                                     { u'description': u'Describes how the assignment will be graded (gpa_scale, pass_fail, percent, points, not_graded, letter_grade)',
                                       u'length': 256,
                                       u'name': u'grading_type',
                                       u'type': u'varchar'},
                                     { u'description': u'Comma separated list of valid methods for submitting the assignment (online_url, media_recording, online_upload, online_quiz, external_tool, online_text_entry, online_file_upload)',
                                       u'length': 256,
                                       u'name': u'submission_types',
                                       u'type': u'varchar'},
                                     { u'description': u'Current workflow state of the assignment.  Possible values are unpublished, published and deleted',
                                       u'length': 256,
                                       u'name': u'workflow_state',
                                       u'type': u'varchar'},
                                     { u'description': u'Timestamp of the first time the assignment was entered into the system',
                                       u'name': u'created_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Timestamp of the last time the assignment was updated',
                                       u'name': u'updated_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'The number of pears to assign for review if using algorithmic assignment',
                                       u'name': u'peer_review_count',
                                       u'type': u'int'},
                                     { u'description': u'Timestamp for when peer reviews should be completed',
                                       u'name': u'peer_reviews_due_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'True if all peer reviews have been assigned',
                                       u'name': u'peer_reviews_assigned',
                                       u'type': u'boolean'},
                                     { u'description': u'True if peer reviews are enabled for this assignment',
                                       u'name': u'peer_reviews',
                                       u'type': u'boolean'},
                                     { u'description': u'True if peer reviews are assigned algorithmically (vs. letting the instructor make manual assignments)',
                                       u'name': u'automatic_peer_reviews',
                                       u'type': u'boolean'},
                                     { u'description': u'True if A specific time for when the assignment is due was not given.  The effective due time will be 11:59pm.',
                                       u'name': u'all_day',
                                       u'type': u'boolean'},
                                     { u'description': u'The date version of the due date if the all_day flag is true.',
                                       u'name': u'all_day_date',
                                       u'type': u'date'},
                                     { u'description': u'True if the assignment is under a module that can be locked',
                                       u'name': u'could_be_locked',
                                       u'type': u'boolean'},
                                     { u'description': u'True if students who submit work as a group will each receive individual grades (vs one grade that is copied to all group members)',
                                       u'name': u'grade_group_students_individually',
                                       u'type': u'boolean'},
                                     { u'description': u'(currently unimplemented, do not use)',
                                       u'name': u'anonymous_peer_reviews',
                                       u'type': u'boolean'},
                                     { u'description': u'Student cannot see grades left on the assignment.',
                                       u'name': u'muted',
                                       u'type': u'boolean'},
                                     { u'description': u'Foreign key to the assignment group dimension table.',
                                       u'name': u'assignment_group_id',
                                       u'type': u'bigint'},
                                     { u'description': u'The sorting order of the assignment in the group',
                                       u'name': u'position',
                                       u'type': u'integer'},
                                     { u'description': u"User sets that can view the assignment. Possible values ('everyone', 'only_visible_to_overrides')",
                                       u'name': u'visibility',
                                       u'type': u'enum'}],
                       u'description': u'Attributes for for assignments.  There is one record in this table for each assignment.  Individual submissions of the assignment are in the submission_dim and submission_fact tables.',
                       u'dw_type': u'dimension',
                       u'hints': { },
                       u'incremental': False,
                       u'tableName': u'assignment_dim'},
  u'assignment_fact': { u'columns': [ { u'description': u'Foreign key to assignment dimension',
                                        u'name': u'assignment_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the course associated with this assignment',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'course',
                                                        u'role': u'course'},
                                        u'name': u'course_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the account associated with the course associated with this assignment',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'account_dim'},
                                        u'name': u'course_account_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign Key to enrollment term table',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'enrollment_term',
                                                        u'role': u'enrollment_term'},
                                        u'name': u'enrollment_term_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Total points possible for the assignment',
                                        u'name': u'points_possible',
                                        u'type': u'double precision'},
                                      { u'description': u'The number of pears to assign for review if using algorithmic assignment',
                                        u'name': u'peer_review_count',
                                        u'type': u'int'},
                                      { u'description': u'Foreign key to the assignment group dimension table.',
                                        u'name': u'assignment_group_id',
                                        u'type': u'bigint'}],
                        u'description': u'Table contains measures related to assignments.',
                        u'dw_type': u'fact',
                        u'hints': { },
                        u'incremental': False,
                        u'tableName': u'assignment_fact'},
  u'assignment_group_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the assignment group.',
                                             u'name': u'id',
                                             u'type': u'bigint'},
                                           { u'description': u'Primary key for this record in the Canvas assignment_groups table.',
                                             u'name': u'canvas_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the course to which the assignment group belongs to.',
                                             u'dimension': { u'id': u'id',
                                                             u'name': u'course',
                                                             u'role': u'course'},
                                             u'name': u'course_id',
                                             u'type': u'bigint'},
                                           { u'description': u"Name of the assignment group. Defaults to 'Assignments' if no name is provided during group creation.",
                                             u'length': 256,
                                             u'name': u'name',
                                             u'type': u'varchar'},
                                           { u'description': u"Default name assigned to the assignments in the assignment group if no name is assigned to them during their creation. Also, it is the singularized version of the assignment group name by default (if it's in English).",
                                             u'length': 256,
                                             u'name': u'default_assignment_name',
                                             u'type': u'varchar'},
                                           { u'description': u"Current workflow state of the assignment groups. Possible values are 'available' and 'deleted'.",
                                             u'length': 256,
                                             u'name': u'workflow_state',
                                             u'type': u'varchar'},
                                           { u'description': u'Position of the assignment group in the assignment index page. It determines where it should be displayed on the page and where it should be displayed in a new course if the course is cloned.',
                                             u'name': u'position',
                                             u'type': u'integer'},
                                           { u'description': u'Date/Time when the assignment group was created.',
                                             u'name': u'created_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Date/Time when the assignment group was last updated.',
                                             u'name': u'updated_at',
                                             u'type': u'timestamp'}],
                             u'description': u'Attributes for assignment_groups.',
                             u'dw_type': u'dimension',
                             u'hints': { },
                             u'incremental': False,
                             u'tableName': u'assignment_group_dim'},
  u'assignment_group_fact': { u'columns': [ { u'description': u'Foreign key to the assignment group dimension table.',
                                              u'name': u'assignment_group_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the course to which the assignment group belongs to.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'course',
                                                              u'role': u'course'},
                                              u'name': u'course_id',
                                              u'type': u'bigint'},
                                            { u'description': u"Weight of the assignment group. Reflects the value populated in the '% of total grade' field in Canvas while creating the assignment group.",
                                              u'name': u'group_weight',
                                              u'type': u'double precision'}],
                              u'description': u'Measures for assignment_groups.',
                              u'dw_type': u'fact',
                              u'hints': { },
                              u'incremental': False,
                              u'tableName': u'assignment_group_fact'},
  u'assignment_group_rule_dim': { u'columns': [ { u'description': u'Foreign key to the assignment group dimension table.',
                                                  u'name': u'assignment_group_id',
                                                  u'type': u'bigint'},
                                                { u'description': u"Number of lowest scored assignments which can be dropped from the group. Set to '0' when none should be dropped. Defauts to '0'.",
                                                  u'name': u'drop_lowest',
                                                  u'type': u'integer'},
                                                { u'description': u"Number of highest scored assignments which can be dropped form the group. Set to '0' when none should be dropped. Defaults to '0'.",
                                                  u'name': u'drop_highest',
                                                  u'type': u'integer'}],
                                  u'description': u'Rules associated with an assignment group.',
                                  u'dw_type': u'dimension',
                                  u'hints': { },
                                  u'incremental': False,
                                  u'tableName': u'assignment_group_rule_dim'},
  u'assignment_override_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the assignment override.',
                                                u'name': u'id',
                                                u'type': u'bigint'},
                                              { u'description': u'Primary key for this record in the Canvas assignments table.',
                                                u'name': u'canvas_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the assignment the override is associated with.  May be empty.',
                                                u'name': u'assignment_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the course_section.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'course_section',
                                                                u'role': u'course_section'},
                                                u'name': u'course_section_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the group.',
                                                u'name': u'group_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the quiz the override is associated with.',
                                                u'name': u'quiz_id',
                                                u'type': u'bigint'},
                                              { u'description': u"Indicates if the all_day field overrides the original assignment.all_day field for this group of users. Possible values are 'new_all_day' and 'same_all_day'.",
                                                u'name': u'all_day',
                                                u'type': u'enum'},
                                              { u'description': u'The new date version of the due date if the all_day flag is true.',
                                                u'name': u'all_day_date',
                                                u'type': u'date'},
                                              { u'description': u'The version of the assignment this override is applied too.',
                                                u'name': u'assignment_version',
                                                u'type': u'int'},
                                              { u'description': u'Timestamp of when the assignment_override was created.',
                                                u'name': u'created_at',
                                                u'type': u'timestamp'},
                                              { u'description': u'The new due_at date-time for this group of users.',
                                                u'name': u'due_at',
                                                u'type': u'timestamp'},
                                              { u'description': u"Indicates if the due_at field overrides the original assignment.due_at field for this group of users. Possible values are 'new_due_at' and 'same_due_at'.",
                                                u'name': u'due_at_overridden',
                                                u'type': u'enum'},
                                              { u'description': u'The new lock_at date-time for this group of users.',
                                                u'name': u'lock_at',
                                                u'type': u'timestamp'},
                                              { u'description': u"Indicates if the lock_at field overrides the original assignment.lock_at field for this group of users. Possible values are 'new_lock_at' and 'same_lock_at'.",
                                                u'name': u'lock_at_overridden',
                                                u'type': u'enum'},
                                              { u'description': u"Used in conjunction with set_id, this field tells us what type of foreign relation is used. Possible values are 'course_section', 'group' and 'adhoc'.",
                                                u'name': u'set_type',
                                                u'type': u'enum'},
                                              { u'description': u'The title for this assignment_override.',
                                                u'name': u'title',
                                                u'type': u'text'},
                                              { u'description': u'The new unlock_at date-time for this group of users.',
                                                u'name': u'unlock_at',
                                                u'type': u'timestamp'},
                                              { u'description': u"Indicates if the unlock_at field overrides the original assignment.unlock_at field for this group of users. Possible values are 'new_unlock_at' and 'same_unlock_at'.",
                                                u'name': u'unlock_at_overridden',
                                                u'type': u'enum'},
                                              { u'description': u'Timestamp of when the assignment_override was last updated.',
                                                u'name': u'updated_at',
                                                u'type': u'timestamp'},
                                              { u'description': u'The version of the quiz this override is applied too.',
                                                u'name': u'quiz_version',
                                                u'type': u'int'},
                                              { u'description': u"Gives the workflow state of this record. Possible values are 'active' and 'deleted'.",
                                                u'name': u'workflow_state',
                                                u'type': u'enum'}],
                                u'description': u'Attributes for assignment_override.  There may be many records in this table for each assignment.  Use the data in this table to calculate actual due, all_day, lock and unlock dates/times.',
                                u'dw_type': u'dimension',
                                u'hints': { },
                                u'incremental': False,
                                u'tableName': u'assignment_override_dim'},
  u'assignment_override_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the assignment_override.',
                                                 u'name': u'assignment_override_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the account associated with the course associated with this assignment.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'account',
                                                                 u'role': u'account'},
                                                 u'name': u'account_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the assignment the override is associated with.  May be empty.',
                                                 u'name': u'assignment_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the assignment group dimension table.',
                                                 u'name': u'assignment_group_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the course associated with this assignment.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'course',
                                                                 u'role': u'course'},
                                                 u'name': u'course_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the course_section.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'course_section',
                                                                 u'role': u'course_section'},
                                                 u'name': u'course_section_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign Key to enrollment term table.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'enrollment_term',
                                                                 u'role': u'enrollment_term'},
                                                 u'name': u'enrollment_term_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the group.',
                                                 u'name': u'group_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'(Not implemented) Foreign key to group category dimension table.',
                                                 u'name': u'group_category_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'If the group is directly associated with an account, this is the id.',
                                                 u'name': u'group_parent_account_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'The course ID for the original course if this course has been cross listed.',
                                                 u'name': u'nonxlist_course_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the quiz the override is associated with.  May be empty.',
                                                 u'name': u'quiz_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the wiki_dim table.',
                                                 u'name': u'group_wiki_id',
                                                 u'type': u'bigint'}],
                                 u'description': u'Table contains measures related to assignment overrides.  Overrides can be found in the assignment_override_dim.  Overrides are primarily the dates about the assigmnents for a given group of assignees.',
                                 u'dw_type': u'fact',
                                 u'hints': { },
                                 u'incremental': False,
                                 u'tableName': u'assignment_override_fact'},
  u'assignment_override_user_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the assignment_override_student.',
                                                     u'name': u'id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'The ID of the user in the adhoc group table.',
                                                     u'name': u'canvas_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Foreign key to the assignment the override is associated with.  May be empty.',
                                                     u'name': u'assignment_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Foreign key to the assignment override dimension',
                                                     u'name': u'assignment_override_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Foreign key to the quiz the override is associated with.  May be empty.',
                                                     u'name': u'quiz_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Foreign key to the user.',
                                                     u'dimension': { u'id': u'id',
                                                                     u'name': u'user',
                                                                     u'role': u'user'},
                                                     u'name': u'user_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Timestamp of when the assignment_override_student was created.',
                                                     u'name': u'created_at',
                                                     u'type': u'timestamp'},
                                                   { u'description': u'Timestamp of when the assignment_override_student was last updated.',
                                                     u'name': u'updated_at',
                                                     u'type': u'timestamp'}],
                                     u'description': u'Table contains measures related to adhoc users for whom an assignment override exists.',
                                     u'dw_type': u'dimension',
                                     u'hints': { },
                                     u'incremental': False,
                                     u'tableName': u'assignment_override_user_dim'},
  u'assignment_override_user_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the assignment_override_student. Is made up by adding a large number to the ID of the source table.',
                                                      u'name': u'assignment_override_user_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the account associated with the course associated with this assignment.',
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'account',
                                                                      u'role': u'account'},
                                                      u'name': u'account_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the assignment group dimension this fact is related to',
                                                      u'name': u'assignment_group_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the assignment the override is associated with.  May be empty.',
                                                      u'name': u'assignment_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the assignment override dimension this fact is related to',
                                                      u'name': u'assignment_override_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the course associated with this assignment.',
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'course',
                                                                      u'role': u'course'},
                                                      u'name': u'course_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign Key to enrollment term table.',
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'enrollment_term',
                                                                      u'role': u'enrollment_term'},
                                                      u'name': u'enrollment_term_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the quiz the override is associated with.  May be empty.',
                                                      u'name': u'quiz_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the user.',
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'user',
                                                                      u'role': u'user'},
                                                      u'name': u'user_id',
                                                      u'type': u'bigint'}],
                                      u'description': u'Table contains measures related to students for whom an assignment override exists.',
                                      u'dw_type': u'fact',
                                      u'hints': { },
                                      u'incremental': False,
                                      u'tableName': u'assignment_override_user_fact'},
  u'assignment_override_user_rollup_fact': { u'columns': [ { u'description': u'Foreign key to the assignment the override is associated with.  May be empty.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'assignment_dim'},
                                                             u'name': u'assignment_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'The ID of the assignment_override for this override user.',
                                                             u'name': u'assignment_override_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'When not empty, this field is the ID of the user in the adhoc group table.',
                                                             u'dimension': { u'id': u'assignment_override_student_adhoc_id',
                                                                             u'name': u'assignment_override_student_adhoc_dim'},
                                                             u'name': u'assignment_override_user_adhoc_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign key to the assignment group dimension table.',
                                                             u'name': u'assignment_group_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign key to the course associated with this assignment.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'course',
                                                                             u'role': u'course'},
                                                             u'name': u'course_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign key to the account associated with the course associated with this assignment.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'account_dim'},
                                                             u'name': u'course_account_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'When not empty, this field is the ID of the course_section the user is part of.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'course_section',
                                                                             u'role': u'course_section'},
                                                             u'name': u'course_section_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'When not empty, this field is the ID of the enrollment for a course section.',
                                                             u'name': u'enrollment_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign Key to enrollment term table.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'enrollment_term',
                                                                             u'role': u'enrollment_term'},
                                                             u'name': u'enrollment_term_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'When not empty, this field is the ID of the group category the user is part of.',
                                                             u'name': u'group_category_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'When not empty, this field is the ID of the group the user is part of.',
                                                             u'name': u'group_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'If the group is directly associated with an account, this is the id.',
                                                             u'name': u'group_parent_account_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign key to the wiki_dim table.',
                                                             u'name': u'group_wiki_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'The course ID for the original course if this course has been cross listed.',
                                                             u'name': u'nonxlist_course_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign key to the quiz the override is associated with.  May be empty.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'quiz_dim'},
                                                             u'name': u'quiz_id',
                                                             u'type': u'bigint'},
                                                           { u'description': u'Foreign key to the user.',
                                                             u'dimension': { u'id': u'id',
                                                                             u'name': u'user'},
                                                             u'name': u'user_id',
                                                             u'type': u'bigint'}],
                                             u'description': u'Table contains measures related to students for whom an assignment override exists.  This table contains the user ids of users for whom an override was created.  There are 3 ways a user can be included, via an adhoc form, via a group membership, or a course section.  All three are included here.',
                                             u'dw_type': u'fact',
                                             u'hints': { },
                                             u'incremental': False,
                                             u'tableName': u'assignment_override_user_rollup_fact'},
  u'assignment_rule_dim': { u'columns': [ { u'description': u'ID of the assignment which can never be dropped from the group.',
                                            u'name': u'assignment_id',
                                            u'type': u'bigint'},
                                          { u'description': u"Denotes if the assignment can be dropped from the assignment group if the group allows dropping assignments based on certain rules. Is set to 'never_drop' if the assignment is exempted from dropping, else set to 'can_be_dropped'.",
                                            u'length': 256,
                                            u'name': u'drop_rule',
                                            u'type': u'varchar'}],
                            u'description': u'Rules associated with an assignment.',
                            u'dw_type': u'dimension',
                            u'hints': { },
                            u'incremental': False,
                            u'tableName': u'assignment_rule_dim'},
  u'communication_channel_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the communication channel.',
                                                  u'name': u'id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Primary key for this communication channel in the communication_channel table.',
                                                  u'name': u'canvas_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the user that owns this communication channel.',
                                                  u'dimension': { u'id': u'id',
                                                                  u'name': u'user',
                                                                  u'role': u'user'},
                                                  u'name': u'user_id',
                                                  u'type': u'bigint'},
                                                { u'description': u"Address, or path, of the communication channel. Set to 'NULL' for push notifications.",
                                                  u'length': 256,
                                                  u'name': u'address',
                                                  u'type': u'varchar'},
                                                { u'description': u"Denotes the type of the path. Possible values are 'email', 'facebook', 'push' (device push notifications), 'sms' and 'twitter'. Defaults to 'email'.",
                                                  u'length': 256,
                                                  u'name': u'type',
                                                  u'type': u'varchar'},
                                                { u'description': u"Position of this communication channel relative to the user's other channels when they are ordered.",
                                                  u'name': u'position',
                                                  u'type': u'integer'},
                                                { u'description': u"Current state of the communication channel. Possible values are 'unconfirmed' and 'active'.",
                                                  u'length': 256,
                                                  u'name': u'workflow_state',
                                                  u'type': u'varchar'},
                                                { u'description': u'Date/Time when the quiz was created.',
                                                  u'name': u'created_at',
                                                  u'type': u'timestamp'},
                                                { u'description': u'Date/Time when the quiz was last updated.',
                                                  u'name': u'updated_at',
                                                  u'type': u'timestamp'}],
                                  u'description': u'Attributes for communication channel.',
                                  u'dw_type': u'dimension',
                                  u'hints': { },
                                  u'incremental': False,
                                  u'tableName': u'communication_channel_dim'},
  u'communication_channel_fact': { u'columns': [ { u'description': u'Foreign key to the communication channel dimension table.',
                                                   u'name': u'communication_channel_id',
                                                   u'type': u'bigint'},
                                                 { u'description': u'Foreign key to the user that owns this communication channel.',
                                                   u'dimension': { u'id': u'id',
                                                                   u'name': u'user',
                                                                   u'role': u'user'},
                                                   u'name': u'user_id',
                                                   u'type': u'bigint'},
                                                 { u'description': u"Number of permanent bounces since the channel was last reset. If it's greater than 0, then no email is sent to the channel, until it is either reset by a siteadmin or it is removed and re-added by a user.",
                                                   u'name': u'bounce_count',
                                                   u'type': u'integer'}],
                                   u'description': u'Measures for communication channel.',
                                   u'dw_type': u'fact',
                                   u'hints': { },
                                   u'incremental': False,
                                   u'tableName': u'communication_channel_fact'},
  u'conversation_dim': { u'columns': [ { u'description': u'Unique surrogate id for the conversation.',
                                         u'name': u'id',
                                         u'type': u'bigint'},
                                       { u'description': u'Original primary key for conversation in the Canvas table',
                                         u'name': u'canvas_id',
                                         u'type': u'bigint'},
                                       { u'description': u'True if the conversation has attachments',
                                         u'name': u'has_attachments',
                                         u'type': u'boolean'},
                                       { u'description': u'True if the conversation has media objects',
                                         u'name': u'has_media_objects',
                                         u'type': u'boolean'},
                                       { u'description': u'The subject of the conversation',
                                         u'length': 256,
                                         u'name': u'subject',
                                         u'type': u'varchar'},
                                       { u'description': u'The course that owns this conversation',
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'course',
                                                         u'role': u'course'},
                                         u'name': u'course_id',
                                         u'type': u'bigint'},
                                       { u'description': u'The group that owns this conversation',
                                         u'name': u'group_id',
                                         u'type': u'bigint'},
                                       { u'description': u'The account this owns this conversation',
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'account',
                                                         u'role': u'account'},
                                         u'name': u'account_id',
                                         u'type': u'bigint'}],
                         u'description': u'Attributes for a conversation',
                         u'dw_type': u'dimension',
                         u'hints': { },
                         u'incremental': False,
                         u'tableName': u'conversation_dim'},
  u'conversation_message_dim': { u'columns': [ { u'description': u'Unique surrogate id for the message.',
                                                 u'name': u'id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Original ID for canvas table.',
                                                 u'name': u'canvas_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Parent conversation for this message.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'conversation',
                                                                 u'role': u'conversation'},
                                                 u'name': u'conversation_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'User id of the author of the message.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'user_dim'},
                                                 u'name': u'author_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Date and time this message was created.',
                                                 u'name': u'created_at',
                                                 u'type': u'timestamp'},
                                               { u'description': u'This attribute is true if the system generated this message (e.g. "John was added to this conversation")',
                                                 u'name': u'generated',
                                                 u'type': u'boolean'},
                                               { u'description': u'True if the message has attachments.',
                                                 u'name': u'has_attachments',
                                                 u'type': u'boolean'},
                                               { u'description': u'True if the message has media objects.',
                                                 u'name': u'has_media_objects',
                                                 u'type': u'boolean'},
                                               { u'description': u'The content of the message.',
                                                 u'name': u'body',
                                                 u'type': u'text'}],
                                 u'description': u'Attributes for a message in a conversation',
                                 u'dw_type': u'dimension',
                                 u'hints': { },
                                 u'incremental': False,
                                 u'tableName': u'conversation_message_dim'},
  u'conversation_message_participant_fact': { u'columns': [ { u'description': u'Foreign key to the message dimension for the associated message.',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'conversation_message',
                                                                              u'role': u'conversation_message'},
                                                              u'name': u'conversation_message_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign key to the conversation dimension for the associated conversation',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'conversation',
                                                                              u'role': u'conversation'},
                                                              u'name': u'conversation_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign key to the user dimension for the associated user',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'user',
                                                                              u'role': u'user'},
                                                              u'name': u'user_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign key to the course dimension for the associated course.',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'course',
                                                                              u'role': u'course'},
                                                              u'name': u'course_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign Key to enrollment term table',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'enrollment_term',
                                                                              u'role': u'enrollment_term'},
                                                              u'name': u'enrollment_term_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u"Foreign Key to the course's account",
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'account_dim'},
                                                              u'name': u'course_account_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign key to the group dimension for a particular group',
                                                              u'name': u'group_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign key to account_dim',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'account',
                                                                              u'role': u'account'},
                                                              u'name': u'account_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'Foreign key to the enrollment roll-up dimension table',
                                                              u'dimension': { u'id': u'id',
                                                                              u'name': u'enrollment_rollup',
                                                                              u'role': u'enrollment_rollup'},
                                                              u'name': u'enrollment_rollup_id',
                                                              u'type': u'bigint'},
                                                            { u'description': u'The message size in bytes.',
                                                              u'name': u'message_size_bytes',
                                                              u'type': u'int'},
                                                            { u'description': u'The message size in characters.',
                                                              u'name': u'message_character_count',
                                                              u'type': u'int'},
                                                            { u'description': u'The message size in words using space and common punctuation as word breaks.',
                                                              u'name': u'message_word_count',
                                                              u'type': u'int'},
                                                            { u'description': u'The number of lines in a message.',
                                                              u'name': u'message_line_count',
                                                              u'type': u'int'}],
                                              u'description': u'Fact table for each message in a conversation and each participant',
                                              u'dw_type': u'fact',
                                              u'hints': { },
                                              u'incremental': False,
                                              u'tableName': u'conversation_message_participant_fact'},
  u'course_dim': { u'columns': [ { u'description': u'Unique surrogate id for a course',
                                   u'name': u'id',
                                   u'type': u'bigint'},
                                 { u'description': u'Primary key for this course in the canvas courses table.',
                                   u'name': u'canvas_id',
                                   u'type': u'bigint'},
                                 { u'description': u'The root account associated with this course.',
                                   u'name': u'root_account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'The parent account for this course.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'account',
                                                   u'role': u'account'},
                                   u'name': u'account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to enrollment term table',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'enrollment_term',
                                                   u'role': u'enrollment_term'},
                                   u'name': u'enrollment_term_id',
                                   u'type': u'bigint'},
                                 { u'description': u'The friendly name of the course.',
                                   u'length': 256,
                                   u'name': u'name',
                                   u'type': u'varchar'},
                                 { u'description': u'The code for the course (e.g. FA12 MATH 2000)',
                                   u'length': 256,
                                   u'name': u'code',
                                   u'type': u'varchar'},
                                 { u'description': u'deprecated. No longer used, will always be NULL.',
                                   u'length': 256,
                                   u'name': u'type',
                                   u'type': u'varchar'},
                                 { u'description': u'Timestamp when the course object was created in Canvas',
                                   u'name': u'created_at',
                                   u'type': u'timestamp'},
                                 { u'description': u'Timestamp for when the course starts.',
                                   u'name': u'start_at',
                                   u'type': u'timestamp'},
                                 { u'description': u'Timestamp for when the course finishes',
                                   u'name': u'conclude_at',
                                   u'type': u'timestamp'},
                                 { u'description': u'True if the course is publicly visible',
                                   u'name': u'publicly_visible',
                                   u'type': u'boolean'},
                                 { u'description': u'Correlated id for the record for this course in the SIS system (assuming SIS integration is configured)',
                                   u'length': 256,
                                   u'name': u'sis_source_id',
                                   u'type': u'varchar'},
                                 { u'description': u'Workflow status indicating the current state of the course, valid values are: completed (course has been hard concluded), created (course has been created, but not published), deleted (course has been deleted), available (course is published, and not hard concluded), claimed (course has been undeleted, and is not published).',
                                   u'length': 256,
                                   u'name': u'workflow_state',
                                   u'type': u'varchar'},
                                 { u'description': u'Foreign key to the wiki_dim table.',
                                   u'name': u'wiki_id',
                                   u'type': u'bigint'}],
                   u'description': u'A course in the canvas system',
                   u'dw_type': u'dimension',
                   u'hints': { },
                   u'incremental': False,
                   u'tableName': u'course_dim'},
  u'course_section_dim': { u'columns': [ { u'description': u'Unique surrogate id for the course section.',
                                           u'name': u'id',
                                           u'type': u'bigint'},
                                         { u'description': u'Primary key for this record in the Canvas course_sections table.',
                                           u'name': u'canvas_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Name of the section',
                                           u'length': 256,
                                           u'name': u'name',
                                           u'type': u'varchar'},
                                         { u'description': u'Foreign key to the associated course',
                                           u'dimension': { u'id': u'id',
                                                           u'name': u'course',
                                                           u'role': u'course'},
                                           u'name': u'course_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the associated enrollment term',
                                           u'dimension': { u'id': u'id',
                                                           u'name': u'enrollment_term',
                                                           u'role': u'enrollment_term'},
                                           u'name': u'enrollment_term_id',
                                           u'type': u'bigint'},
                                         { u'description': u'True if this is the default section',
                                           u'name': u'default_section',
                                           u'type': u'boolean'},
                                         { u'description': u'True if this section is open for enrollment',
                                           u'name': u'accepting_enrollments',
                                           u'type': u'boolean'},
                                         { u'description': u'Deprecated',
                                           u'name': u'can_manually_enroll',
                                           u'type': u'boolean'},
                                         { u'description': u'Section start date',
                                           u'name': u'start_at',
                                           u'type': u'timestamp'},
                                         { u'description': u'Section end date',
                                           u'name': u'end_at',
                                           u'type': u'timestamp'},
                                         { u'description': u'Timestamp for when this section was entered into the system.',
                                           u'name': u'created_at',
                                           u'type': u'timestamp'},
                                         { u'description': u'Timestamp for when the last time the section was updated',
                                           u'name': u'updated_at',
                                           u'type': u'timestamp'},
                                         { u'description': u'Life-cycle state for section. (active, deleted)',
                                           u'length': 256,
                                           u'name': u'workflow_state',
                                           u'type': u'varchar'},
                                         { u'description': u'True when "Users can only participate in the course between these dates" is checked',
                                           u'name': u'restrict_enrollments_to_section_dates',
                                           u'type': u'boolean'},
                                         { u'description': u'The course id for the original course if this course has been cross listed',
                                           u'name': u'nonxlist_course_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Id for the correlated record for the section in the SIS (assuming SIS integration has been properly configured)',
                                           u'length': 256,
                                           u'name': u'sis_source_id',
                                           u'type': u'varchar'}],
                           u'description': u'Attributes for a section of a course',
                           u'dw_type': u'dimension',
                           u'hints': { },
                           u'incremental': False,
                           u'tableName': u'course_section_dim'},
  u'course_ui_canvas_navigation_dim': { u'columns': [ { u'description': u'Primary key for navigational item',
                                                        u'name': u'id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'ID in Canvas system',
                                                        u'name': u'canvas_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Name of navigational item',
                                                        u'length': 256,
                                                        u'name': u'name',
                                                        u'type': u'varchar'},
                                                      { u'description': u'(Default|NotDefault) - set to Default if this is one of the navigation items enabled in a course by default',
                                                        u'length': 256,
                                                        u'name': u'default',
                                                        u'type': u'varchar'},
                                                      { u'description': u'Original position of this navigation item',
                                                        u'length': 256,
                                                        u'name': u'original_position',
                                                        u'type': u'varchar'}],
                                        u'description': u'Attributes for a Canvas navigation function',
                                        u'dw_type': u'dimension',
                                        u'hints': { },
                                        u'incremental': False,
                                        u'tableName': u'course_ui_canvas_navigation_dim'},
  u'course_ui_navigation_item_dim': { u'columns': [ { u'description': u'Primary key for navigational item',
                                                      u'name': u'id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to root account of the course',
                                                      u'name': u'root_account_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'(visible|hidden) Visible if this element is visible, hidden if hidden/not available in the navigation',
                                                      u'length': 256,
                                                      u'name': u'visible',
                                                      u'type': u'varchar'},
                                                    { u'description': u'Position in the navigation.  NULL if hidden.',
                                                      u'name': u'position',
                                                      u'type': u'int'}],
                                      u'description': u'Attributes for a navigation item',
                                      u'dw_type': u'dimension',
                                      u'hints': { },
                                      u'incremental': False,
                                      u'tableName': u'course_ui_navigation_item_dim'},
  u'course_ui_navigation_item_fact': { u'columns': [ { u'description': u'Foreign key to root account of the course',
                                                       u'name': u'root_account_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Foreign key to course_ui_navigation_item_dim',
                                                       u'name': u'course_ui_navigation_item_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Foreign key to navigation function',
                                                       u'name': u'course_ui_canvas_navigation_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Foreign key to external_tool_activation_dim',
                                                       u'name': u'external_tool_activation_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Foreign key to course',
                                                       u'dimension': { u'id': u'id',
                                                                       u'name': u'course',
                                                                       u'role': u'course'},
                                                       u'name': u'course_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Foreign key to account for course',
                                                       u'name': u'course_account_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Foreign key to enrollment term',
                                                       u'dimension': { u'id': u'id',
                                                                       u'name': u'enrollment_term',
                                                                       u'role': u'enrollment_term'},
                                                       u'name': u'enrollment_term_id',
                                                       u'type': u'bigint'}],
                                       u'description': u'Facts describing a single item in the navigation UI',
                                       u'dw_type': u'fact',
                                       u'hints': { },
                                       u'incremental': False,
                                       u'tableName': u'course_ui_navigation_item_fact'},
  u'discussion_entry_dim': { u'columns': [ { u'description': u'Unique surrogate id for the discussion entry.',
                                             u'name': u'id',
                                             u'type': u'bigint'},
                                           { u'description': u'Primary key for this record in the Canvas discussion_entries table',
                                             u'name': u'canvas_id',
                                             u'type': u'bigint'},
                                           { u'description': u"Full text of the entry's message",
                                             u'name': u'message',
                                             u'type': u'text'},
                                           { u'description': u'Workflow state for discussion message (values: deleted, active)',
                                             u'length': 256,
                                             u'name': u'workflow_state',
                                             u'type': u'varchar'},
                                           { u'description': u'Timestamp when the discussion entry was created.',
                                             u'name': u'created_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion entry was updated.',
                                             u'name': u'updated_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion entry was deleted.',
                                             u'name': u'deleted_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Reply depth for this entry',
                                             u'name': u'depth',
                                             u'type': u'int'}],
                             u'description': u'Attributes for discussion entries. Discussion entries are replies in a discussion topic.',
                             u'dw_type': u'dimension',
                             u'hints': { },
                             u'incremental': False,
                             u'tableName': u'discussion_entry_dim'},
  u'discussion_entry_fact': { u'columns': [ { u'description': u'Foreign key to this entries attributes.',
                                              u'name': u'discussion_entry_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the reply that it is nested underneath.',
                                              u'name': u'parent_discussion_entry_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the user that created this entry.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user',
                                                              u'role': u'user'},
                                              u'name': u'user_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to associated discussion topic.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'discussion_topic_dim'},
                                              u'name': u'topic_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to associated course.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'course',
                                                              u'role': u'course'},
                                              u'name': u'course_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign Key to enrollment term table',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'enrollment_term',
                                                              u'role': u'enrollment_term'},
                                              u'name': u'enrollment_term_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to account for associated course.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'account_dim'},
                                              u'name': u'course_account_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to user that posted the associated discussion topic.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user_dim'},
                                              u'name': u'topic_user_id',
                                              u'type': u'bigint'},
                                            { u'description': u"Foreign key to assignment associated with the entry's discussion topic.",
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'assignment_dim'},
                                              u'name': u'topic_assignment_id',
                                              u'type': u'bigint'},
                                            { u'description': u"Foreign key to editor associated with the entry's discussion topic.",
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user_dim'},
                                              u'name': u'topic_editor_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the enrollment roll-up dimension table',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'enrollment_rollup',
                                                              u'role': u'enrollment_rollup'},
                                              u'name': u'enrollment_rollup_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Length of the message in bytes',
                                              u'name': u'message_length',
                                              u'type': u'int'}],
                              u'description': u'Measures for discussion entries.  Discussion entries are replies in a discussion topic.',
                              u'dw_type': u'fact',
                              u'hints': { },
                              u'incremental': False,
                              u'tableName': u'discussion_entry_fact'},
  u'discussion_topic_dim': { u'columns': [ { u'description': u'Unique surrogate id for the discussion topic.',
                                             u'name': u'id',
                                             u'type': u'bigint'},
                                           { u'description': u'Primary key to the discussion_topics table in Canvas',
                                             u'name': u'canvas_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Title of the discussion topic',
                                             u'length': 256,
                                             u'name': u'title',
                                             u'type': u'varchar'},
                                           { u'description': u'Message text for the discussion topic.',
                                             u'name': u'message',
                                             u'type': u'text'},
                                           { u'description': u'Discussion topic type.  Two types are default (blank) and announcement.',
                                             u'length': 256,
                                             u'name': u'type',
                                             u'type': u'varchar'},
                                           { u'description': u'Workflow state for this discussion topic.  Valid states are unpublished, active, locked, deleted, and post_delayed',
                                             u'length': 256,
                                             u'name': u'workflow_state',
                                             u'type': u'varchar'},
                                           { u'description': u'Timestamp of the last reply to this topic.',
                                             u'name': u'last_reply_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion topic was first saved in the system.',
                                             u'name': u'created_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion topic was last updated in the system.',
                                             u'name': u'updated_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion topic was/will be delay-posted',
                                             u'name': u'delayed_post_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion topic was posted',
                                             u'name': u'posted_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the discussion topic was deleted.',
                                             u'name': u'deleted_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Type of discussion topic: default(blank), side_comment, threaded.  threaded indicates that replies are threaded where side_comment indicates that replies in the discussion are flat.  See related Canvas Guide https://guides.instructure.com/m/4152/l/60423-how-do-i-create-a-threaded-discussion',
                                             u'length': 256,
                                             u'name': u'discussion_type',
                                             u'type': u'varchar'},
                                           { u'description': u'True if the discussion topic has been pinned',
                                             u'name': u'pinned',
                                             u'type': u'boolean'},
                                           { u'description': u'True if the discussion topic has been locked',
                                             u'name': u'locked',
                                             u'type': u'boolean'},
                                           { u'description': u'Foreign key to the course dimension',
                                             u'dimension': { u'id': u'id',
                                                             u'name': u'course',
                                                             u'role': u'course'},
                                             u'name': u'course_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the group dimension',
                                             u'name': u'group_id',
                                             u'type': u'bigint'}],
                             u'description': u'Attributes for discussion topics in Canvas.  Discussion topics are logical discussion threads.  They can have many discussion entries.   They also have their own message text for the message that started the topic.',
                             u'dw_type': u'dimension',
                             u'hints': { },
                             u'incremental': False,
                             u'tableName': u'discussion_topic_dim'},
  u'discussion_topic_fact': { u'columns': [ { u'description': u'Foreign key to the discussion topic dimension for the associated discussion topic.',
                                              u'name': u'discussion_topic_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the course dimension',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'course',
                                                              u'role': u'course'},
                                              u'name': u'course_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign Key to enrollment term table',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'enrollment_term',
                                                              u'role': u'enrollment_term'},
                                              u'name': u'enrollment_term_id',
                                              u'type': u'bigint'},
                                            { u'description': u'(currently un-populated) Foreign key to the account dimension for the account associated with the associated course',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'account_dim'},
                                              u'name': u'course_account_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the user dimension for the user that created the discussion topic.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user',
                                                              u'role': u'user'},
                                              u'name': u'user_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the assignment dimension',
                                              u'name': u'assignment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the user to last edit the entry, if different than user_id',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user_dim'},
                                              u'name': u'editor_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the enrollment roll-up dimension table',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'enrollment_rollup',
                                                              u'role': u'enrollment_rollup'},
                                              u'name': u'enrollment_rollup_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Best guess at the count of characters in the message. Special characters are treated differently in different systems. As a result, you may find variance in message length in your own systems. NULL messages are mapped to 0 length.',
                                              u'name': u'message_length',
                                              u'type': u'int'},
                                            { u'description': u'Foreign key to the group dimension',
                                              u'name': u'group_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to course dimension.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'course_dim'},
                                              u'name': u'group_parent_course_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to accounts table.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'account_dim'},
                                              u'name': u'group_parent_account_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the account dimension for the account associated with the course to which the group belongs to.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'account_dim'},
                                              u'name': u'group_parent_course_account_id',
                                              u'type': u'bigint'}],
                              u'description': u'Measures for discussion topics/threads.',
                              u'dw_type': u'fact',
                              u'hints': { },
                              u'incremental': False,
                              u'tableName': u'discussion_topic_fact'},
  u'enrollment_dim': { u'columns': [ { u'description': u'Unique surrogate id for the enrollment.',
                                       u'name': u'id',
                                       u'type': u'bigint'},
                                     { u'description': u'Primary key for this record in the Canvas enrollments table',
                                       u'name': u'canvas_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Root account id associated with this enrollment',
                                       u'name': u'root_account_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the course section for this enrollment',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'course_section',
                                                       u'role': u'course_section'},
                                       u'name': u'course_section_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the role of the person enrolled in the course',
                                       u'name': u'role_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Enrollment type: TaEnrollment, DesignerEnrollment, StudentEnrollment, TeacherEnrollment, StudentViewEnrollment, ObserverEnrollment',
                                       u'length': 256,
                                       u'name': u'type',
                                       u'type': u'varchar'},
                                     { u'description': u'Workflow state for enrollment: active, completed, rejected, deleted, invited, creation_pending',
                                       u'length': 256,
                                       u'name': u'workflow_state',
                                       u'type': u'varchar'},
                                     { u'description': u'Timestamp for when this section was entered into the system.',
                                       u'name': u'created_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Timestamp for when the last time the section was updated',
                                       u'name': u'updated_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Enrollment start date',
                                       u'name': u'start_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Enrollment end date',
                                       u'name': u'end_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Enrollment completed date',
                                       u'name': u'completed_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Enrollment was created via self-enrollment',
                                       u'name': u'self_enrolled',
                                       u'type': u'boolean'},
                                     { u'description': u'(Deprecated) No longer used in Canvas.',
                                       u'length': 256,
                                       u'name': u'sis_source_id',
                                       u'type': u'varchar'},
                                     { u'description': u'Foreign key to course for this enrollment',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'course',
                                                       u'role': u'course'},
                                       u'name': u'course_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to user for the enrollment',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'user',
                                                       u'role': u'user'},
                                       u'name': u'user_id',
                                       u'type': u'bigint'}],
                       u'description': u"An enrollment represents a user's association with a specific course and section",
                       u'dw_type': u'dimension',
                       u'hints': { },
                       u'incremental': False,
                       u'tableName': u'enrollment_dim'},
  u'enrollment_fact': { u'columns': [ { u'description': u'Foreign key for the attributes of the enrollment',
                                        u'name': u'enrollment_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the enrolled user',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'user',
                                                        u'role': u'user'},
                                        u'name': u'user_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the enrolled course',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'course',
                                                        u'role': u'course'},
                                        u'name': u'course_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the enrollment term table',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'enrollment_term',
                                                        u'role': u'enrollment_term'},
                                        u'name': u'enrollment_term_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the account of the enrolled course',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'account_dim'},
                                        u'name': u'course_account_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the enrolled section',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'course_section',
                                                        u'role': u'course_section'},
                                        u'name': u'course_section_id',
                                        u'type': u'bigint'},
                                      { u'description': u'(Deprecated Jan-28-2017) Scores have migrated to the score_fact table.  An effort is made to back fill scores from the scores table into this table.  No guarantees offered.',
                                        u'name': u'computed_final_score',
                                        u'type': u'double precision'},
                                      { u'description': u'(Deprecated Jan-28-2017) Scores have migrated to the score_fact table.  An effort is made to back fill scores from the scores table into this table.  No guarantees offered.',
                                        u'name': u'computed_current_score',
                                        u'type': u'double precision'}],
                        u'description': u'Measures for enrollments',
                        u'dw_type': u'fact',
                        u'hints': { },
                        u'incremental': False,
                        u'tableName': u'enrollment_fact'},
  u'enrollment_rollup_dim': { u'columns': [ { u'description': u'Unique surrogate id for the user and the course.',
                                              u'name': u'id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the enrolled user.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user',
                                                              u'role': u'user'},
                                              u'name': u'user_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the enrolled course.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'course',
                                                              u'role': u'course'},
                                              u'name': u'course_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Total number of enrollments associated with the user in the course for his/her all roles under all base roles, duplicate or not.',
                                              u'name': u'enrollment_count',
                                              u'type': u'int'},
                                            { u'description': u'Total number of unique roles associated with the user in the course.',
                                              u'name': u'role_count',
                                              u'type': u'int'},
                                            { u'description': u'Total number of unique base roles associated with the user in the course.',
                                              u'name': u'base_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'AccountAdmin' roles associated with the user in the course.",
                                              u'name': u'account_admin_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'TeacherEnrollment' roles associated with the user in the course.",
                                              u'name': u'teacher_enrollment_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'DesignerEnrollment' roles associated with the user in the course.",
                                              u'name': u'designer_enrollment_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'TaEnrollment' roles associated with the user in the course.",
                                              u'name': u'ta_enrollment_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'StudentEnrollment' roles associated with the user in the course.",
                                              u'name': u'student_enrollment_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'ObserverEnrollment' roles associated with the user in the course.",
                                              u'name': u'observer_enrollment_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'AccountMembership' roles associated with the user in the course.",
                                              u'name': u'account_membership_role_count',
                                              u'type': u'int'},
                                            { u'description': u"Total number of 'NoPermissions' roles associated with the user in the course.",
                                              u'name': u'no_permissions_role_count',
                                              u'type': u'int'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'account_admin_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'teacher_enrollment_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'designer_enrollment_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'ta_enrollment_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'student_enrollment_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'observer_enrollment_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'account_membership_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Enrollment ID if this a valid role for the user in the course, else NULL.',
                                              u'name': u'no_permissions_enrollment_id',
                                              u'type': u'bigint'},
                                            { u'description': u'The most privileged role associated with the user in the course.',
                                              u'length': 256,
                                              u'name': u'most_privileged_role',
                                              u'type': u'varchar'},
                                            { u'description': u'The least privileged role associated with the user in the course.',
                                              u'length': 256,
                                              u'name': u'least_privileged_role',
                                              u'type': u'varchar'}],
                              u'description': u'Would be an empty table. Roll-up aggregating the roles held by the users in the courses they are associated with.',
                              u'dw_type': u'dimension',
                              u'hints': { },
                              u'incremental': False,
                              u'tableName': u'enrollment_rollup_dim'},
  u'enrollment_term_dim': { u'columns': [ { u'description': u'Unique surrogate id for the enrollment term.',
                                            u'name': u'id',
                                            u'type': u'bigint'},
                                          { u'description': u'Primary key for this record in the Canvas enrollments table.',
                                            u'name': u'canvas_id',
                                            u'type': u'bigint'},
                                          { u'description': u'Foreign key to the root account for this enrollment term',
                                            u'name': u'root_account_id',
                                            u'type': u'bigint'},
                                          { u'description': u'Name of the enrollment term',
                                            u'length': 256,
                                            u'name': u'name',
                                            u'type': u'varchar'},
                                          { u'description': u'Term start date',
                                            u'name': u'date_start',
                                            u'type': u'timestamp'},
                                          { u'description': u'Term end date',
                                            u'name': u'date_end',
                                            u'type': u'timestamp'},
                                          { u'description': u'Correlated SIS id for this enrollment term (assuming SIS has been configured properly)',
                                            u'length': 256,
                                            u'name': u'sis_source_id',
                                            u'type': u'varchar'}],
                            u'description': u'Enrollment term describes the term or semester associated with courses (e.g. Fall 2013)',
                            u'dw_type': u'dimension',
                            u'hints': { },
                            u'incremental': False,
                            u'tableName': u'enrollment_term_dim'},
  u'external_tool_activation_dim': { u'columns': [ { u'description': u'Unique surrogate id for tool activations',
                                                     u'name': u'id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Primary key for this record in the context_external_tools table in the Canvas database',
                                                     u'name': u'canvas_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Foreign key to the course if this tool was activated in a course',
                                                     u'dimension': { u'id': u'id',
                                                                     u'name': u'course',
                                                                     u'role': u'course'},
                                                     u'name': u'course_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'Foreign key to the account this tool was activated in if it was activated in an account',
                                                     u'dimension': { u'id': u'id',
                                                                     u'name': u'account',
                                                                     u'role': u'account'},
                                                     u'name': u'account_id',
                                                     u'type': u'bigint'},
                                                   { u'description': u'The type of object the tool was activated in, (course or account)',
                                                     u'length': 256,
                                                     u'name': u'activation_target_type',
                                                     u'type': u'varchar'},
                                                   { u'description': u'The URL to where the tool may launch to',
                                                     u'length': 4096,
                                                     u'name': u'url',
                                                     u'type': u'varchar'},
                                                   { u'description': u'The name of tool activation as entered by the user',
                                                     u'length': 256,
                                                     u'name': u'name',
                                                     u'type': u'varchar'},
                                                   { u'description': u'The description of the tool activation as entered by the user',
                                                     u'length': 256,
                                                     u'name': u'description',
                                                     u'type': u'varchar'},
                                                   { u'description': u'Workflow state for activation (active, deleted)',
                                                     u'length': 256,
                                                     u'name': u'workflow_state',
                                                     u'type': u'varchar'},
                                                   { u'description': u'Privacy setting for activation (name_only, email_only, anonymous, public)',
                                                     u'length': 256,
                                                     u'name': u'privacy_level',
                                                     u'type': u'varchar'},
                                                   { u'description': u'Timestamp when the activation was created',
                                                     u'name': u'created_at',
                                                     u'type': u'timestamp'},
                                                   { u'description': u'Timestamp when the activation was last updated',
                                                     u'name': u'updated_at',
                                                     u'type': u'timestamp'},
                                                   { u'description': u'The tool id received from the external tool. May be missing if the tool does not send an id.',
                                                     u'length': 256,
                                                     u'name': u'tool_id',
                                                     u'type': u'varchar'},
                                                   { u'description': u'true - tool is selectable in all scenarios. false - not selectable for assignment or module selection menu',
                                                     u'name': u'selectable_all',
                                                     u'type': u'boolean'}],
                                     u'description': u'Attributes for external tool (LTI) activations.\nNote that activations can happen on courses or accounts.   If this activation is associated with a course then course_id, course_account_id and enrollment_term_id will be populated.  If this activation is associated with an account then only account_id will be populated.',
                                     u'dw_type': u'dimension',
                                     u'hints': { },
                                     u'incremental': False,
                                     u'tableName': u'external_tool_activation_dim'},
  u'external_tool_activation_fact': { u'columns': [ { u'description': u'Foreign key to the external_tool_activation_dim dimension with attribute for this activation',
                                                      u'name': u'external_tool_activation_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the course if this tool was activated in a course',
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'course',
                                                                      u'role': u'course'},
                                                      u'name': u'course_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the account this tool was activated in if it was activated in an account',
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'account',
                                                                      u'role': u'account'},
                                                      u'name': u'account_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u'Foreign key to the root account for this data',
                                                      u'name': u'root_account_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u"Foreign key to the course's enrollment term if this tool was activated in a course",
                                                      u'dimension': { u'id': u'id',
                                                                      u'name': u'enrollment_term',
                                                                      u'role': u'enrollment_term'},
                                                      u'name': u'enrollment_term_id',
                                                      u'type': u'bigint'},
                                                    { u'description': u"Foreign key to the course's account if this tool was activated in a course",
                                                      u'name': u'course_account_id',
                                                      u'type': u'bigint'}],
                                      u'description': u'Facts and denormalized dimensions for external tool (LTI) activations.',
                                      u'dw_type': u'fact',
                                      u'hints': { },
                                      u'incremental': False,
                                      u'tableName': u'external_tool_activation_fact'},
  u'file_dim': { u'columns': [ { u'description': u'Unique surrogate ID for this file.',
                                 u'name': u'id',
                                 u'type': u'bigint'},
                               { u'description': u'Primary key for this file in the attachments table.',
                                 u'name': u'canvas_id',
                                 u'type': u'bigint'},
                               { u'description': u'Name of this file.',
                                 u'name': u'display_name',
                                 u'type': u'text'},
                               { u'description': u'Foreign key to the account this file belongs to.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'account',
                                                 u'role': u'account'},
                                 u'name': u'account_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the assignment this file belongs to.',
                                 u'name': u'assignment_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the conversation message this file belongs to.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'conversation_message',
                                                 u'role': u'conversation_message'},
                                 u'name': u'conversation_message_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the course this file belongs to.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'course',
                                                 u'role': u'course'},
                                 u'name': u'course_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the folder this file belongs to.',
                                 u'name': u'folder_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the group this file belongs to.',
                                 u'name': u'group_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the quiz this file belongs to.',
                                 u'name': u'quiz_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the quiz submission this file belongs to.',
                                 u'name': u'quiz_submission_id',
                                 u'type': u'bigint'},
                               { u'description': u'ID of the overwriting file if this file is overwritten.',
                                 u'name': u'replacement_file_id',
                                 u'type': u'bigint'},
                               { u'description': u"ID of the source file from which this file was copied and created. Set to 'NULL' when this is the only copy.",
                                 u'name': u'root_file_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the submission this file belongs to.',
                                 u'name': u'submission_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the user who uploaded this file. Might contain users which are not in the user dimension table.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'user_dim'},
                                 u'name': u'uploader_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the user this file belongs to.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'user',
                                                 u'role': u'user'},
                                 u'name': u'user_id',
                                 u'type': u'bigint'},
                               { u'description': u"Table this file is associated with. Possible values are 'account', 'assignment', 'conversation_message', 'course', 'group', 'quiz', 'quiz_submission', 'submission' and 'user'.",
                                 u'name': u'owner_entity_type',
                                 u'type': u'enum'},
                               { u'description': u'Contains the MIME type of this file.',
                                 u'length': 256,
                                 u'name': u'content_type',
                                 u'type': u'varchar'},
                               { u'description': u'Contains the MD5 checksum of the contents of this file.',
                                 u'length': 256,
                                 u'name': u'md5',
                                 u'type': u'varchar'},
                               { u'description': u"Denotes the current state of this file. Possible values are 'available', 'broken', 'deleted', 'errored' and 'hidden'.",
                                 u'name': u'file_state',
                                 u'type': u'enum'},
                               { u'description': u"Dictates if the quiz can be locked or not. Possible values are 'allow_locking' and 'disallow_locking'.",
                                 u'name': u'could_be_locked',
                                 u'type': u'enum'},
                               { u'description': u"Denotes the current lock status of this file. Possible values are 'is_locked' and 'is_not_locked'.",
                                 u'name': u'locked',
                                 u'type': u'enum'},
                               { u'description': u'Date/Time when this file is to be locked.',
                                 u'name': u'lock_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Date/Time when this file is to unlocked.',
                                 u'name': u'unlock_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Date/Time when this file was last viewed.',
                                 u'name': u'viewed_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Date/Time when this file was created.',
                                 u'name': u'created_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Date/Time when this file was last updated.',
                                 u'name': u'updated_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Date/Time when this file was deleted.',
                                 u'name': u'deleted_at',
                                 u'type': u'timestamp'}],
                 u'description': u'Attributes for files.',
                 u'dw_type': u'dimension',
                 u'hints': { },
                 u'incremental': False,
                 u'tableName': u'file_dim'},
  u'file_fact': { u'columns': [ { u'description': u'Foreign key to this file dimesion table.',
                                  u'name': u'file_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the account this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'account',
                                                  u'role': u'account'},
                                  u'name': u'account_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the assignment, the quiz/quiz submission/submission associated with this file belongs to.',
                                  u'name': u'assignment_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the assignment group, the assignment/submission associated with this file belongs to.',
                                  u'name': u'assignment_group_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the conversation, the conversation message associated with this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'conversation',
                                                  u'role': u'conversation'},
                                  u'name': u'conversation_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the user, who authored the conversation message this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'user_dim'},
                                  u'name': u'conversation_message_author_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the conversation message this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'conversation_message',
                                                  u'role': u'conversation_message'},
                                  u'name': u'conversation_message_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the course, the assignment/quiz/quiz submission/submission associated with this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'course',
                                                  u'role': u'course'},
                                  u'name': u'course_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the enrollment roll-up, the quiz submission/submission associated with this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'enrollment_rollup',
                                                  u'role': u'enrollment_rollup'},
                                  u'name': u'enrollment_rollup_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign Key to enrollment term, the assignment/conversation message/group/quiz/quiz submission/submission associated with this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'enrollment_term',
                                                  u'role': u'enrollment_term'},
                                  u'name': u'enrollment_term_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the folder this file belongs to.',
                                  u'name': u'folder_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the user who graded the submission associated with this file.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'user_dim'},
                                  u'name': u'grader_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the group this file belongs to.',
                                  u'name': u'group_id',
                                  u'type': u'bigint'},
                                { u'description': u'(Not implemented) Foreign key to group category the group associated with this file belongs to.',
                                  u'name': u'group_category_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the quiz, the quiz/quiz submission associated with this file belongs to.',
                                  u'name': u'quiz_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the quiz submission this file belongs to.',
                                  u'name': u'quiz_submission_id',
                                  u'type': u'bigint'},
                                { u'description': u"Foreign key to the file which overwrote/replaced this file. Defaults to 'NULL' when the file was not overwritten/replaced.",
                                  u'name': u'replacement_file_id',
                                  u'type': u'bigint'},
                                { u'description': u"Foreign key to the source file from which this file was copied and created. Defaults to 'NULL' when this is the only copy.",
                                  u'name': u'root_file_id',
                                  u'type': u'bigint'},
                                { u'description': u'Correlated ID for the record for the course, associated with this file, in the SIS system (assuming SIS integration is configured).',
                                  u'length': 256,
                                  u'name': u'sis_source_id',
                                  u'type': u'varchar'},
                                { u'description': u'Foreign key to the submission this file belongs to.',
                                  u'name': u'submission_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the user who uploaded this file. Might contain users which are not in the user dimension table.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'user_dim'},
                                  u'name': u'uploader_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the user this file belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'user',
                                                  u'role': u'user'},
                                  u'name': u'user_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the wiki the conversation message/group/submission associated with this file belongs to.',
                                  u'name': u'wiki_id',
                                  u'type': u'bigint'},
                                { u'description': u'Size of this file in bytes.',
                                  u'name': u'size',
                                  u'type': u'bigint'}],
                  u'description': u'Measures for files.',
                  u'dw_type': u'fact',
                  u'hints': { },
                  u'incremental': False,
                  u'tableName': u'file_fact'},
  u'grading_period_dim': { u'columns': [ { u'description': u'Unique surrogate identifier for the  grading period.',
                                           u'name': u'id',
                                           u'type': u'bigint'},
                                         { u'description': u'Primary key for the grading period.',
                                           u'name': u'canvas_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Surrogate ID to the grading period group table.',
                                           u'name': u'grading_period_group_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Grades can only be changed before the close date of the grading period.',
                                           u'name': u'close_date',
                                           u'type': u'timestamp'},
                                         { u'description': u'Timestamp when record was created',
                                           u'name': u'created_at',
                                           u'type': u'timestamp'},
                                         { u'description': u'End date of the grading period.',
                                           u'name': u'end_date',
                                           u'type': u'timestamp'},
                                         { u'description': u'Start date of the grading period.',
                                           u'name': u'start_date',
                                           u'type': u'timestamp'},
                                         { u'description': u'Title for the grading period.',
                                           u'length': 256,
                                           u'name': u'title',
                                           u'type': u'varchar'},
                                         { u'description': u'Timestamp when record was last updated.',
                                           u'name': u'updated_at',
                                           u'type': u'timestamp'},
                                         { u'description': u"current workflow state. Possibe values are 'active', 'deleted'",
                                           u'length': 256,
                                           u'name': u'workflow_state',
                                           u'type': u'varchar'}],
                           u'description': u'Attributes for grading period. A Grading period is like a "term", essentially used for splitting up the gradebook into "periods"',
                           u'dw_type': u'dimension',
                           u'hints': { },
                           u'incremental': False,
                           u'tableName': u'grading_period_dim'},
  u'grading_period_fact': { u'columns': [ { u'description': u'Unique surrogate identifier for the  grading period.',
                                            u'name': u'grading_period_id',
                                            u'type': u'bigint'},
                                          { u'description': u'Primary key for the grading period.',
                                            u'name': u'canvas_id',
                                            u'type': u'bigint'},
                                          { u'description': u'Foreign key to the grading period group table.',
                                            u'name': u'grading_period_group_id',
                                            u'type': u'bigint'},
                                          { u'description': u'One hop ID to the Account table for the grading period group',
                                            u'name': u'grading_period_group_account_id',
                                            u'type': u'bigint'},
                                          { u'description': u'One hop ID to the Course table for the grading period group',
                                            u'name': u'grading_period_group_course_id',
                                            u'type': u'bigint'},
                                          { u'description': u'A weight value that contributes to the overall weight of a grading period set which is used to calculate how much assignments in this period contribute to the total grade.',
                                            u'name': u'weight',
                                            u'type': u'double precision'}],
                            u'description': u'Measures for grading periods.',
                            u'dw_type': u'fact',
                            u'hints': { },
                            u'incremental': False,
                            u'tableName': u'grading_period_fact'},
  u'grading_period_group_dim': { u'columns': [ { u'description': u'Unique surrogate identifier for the grading period groups',
                                                 u'name': u'id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Primary key for the grading period groups',
                                                 u'name': u'canvas_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the Course table.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'course',
                                                                 u'role': u'course'},
                                                 u'name': u'course_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the Account table.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'account',
                                                                 u'role': u'account'},
                                                 u'name': u'account_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Timestamp when record was created.',
                                                 u'name': u'created_at',
                                                 u'type': u'timestamp'},
                                               { u'description': u'Title for the grading period group.',
                                                 u'length': 256,
                                                 u'name': u'title',
                                                 u'type': u'varchar'},
                                               { u'description': u'Timestamp when record was last updated.',
                                                 u'name': u'updated_at',
                                                 u'type': u'timestamp'},
                                               { u'description': u"Workflow state for the grading period group. Possibe values are 'active', 'deleted'",
                                                 u'length': 256,
                                                 u'name': u'workflow_state',
                                                 u'type': u'varchar'}],
                                 u'description': u'Attributes for grading period groups. Which are a group of grading periods.',
                                 u'dw_type': u'dimension',
                                 u'hints': { },
                                 u'incremental': False,
                                 u'tableName': u'grading_period_group_dim'},
  u'group_dim': { u'columns': [ { u'description': u'Unique surrogate id for the group.',
                                  u'name': u'id',
                                  u'type': u'bigint'},
                                { u'description': u'Primary key to the groups table in canvas.',
                                  u'name': u'canvas_id',
                                  u'type': u'bigint'},
                                { u'description': u'Name of the group.',
                                  u'length': 256,
                                  u'name': u'name',
                                  u'type': u'varchar'},
                                { u'description': u'Description of the group.',
                                  u'name': u'description',
                                  u'type': u'text'},
                                { u'description': u'Timestamp when the group was first saved in the system.',
                                  u'name': u'created_at',
                                  u'type': u'timestamp'},
                                { u'description': u'Timestamp when the group was last updated in the system.',
                                  u'name': u'updated_at',
                                  u'type': u'timestamp'},
                                { u'description': u'Timestamp when the group was deleted.',
                                  u'name': u'deleted_at',
                                  u'type': u'timestamp'},
                                { u'description': u'True if the group contents are accessible to public.',
                                  u'name': u'is_public',
                                  u'type': u'boolean'},
                                { u'description': u'Workflow state for group.(values: deleted,active)',
                                  u'length': 256,
                                  u'name': u'workflow_state',
                                  u'type': u'varchar'},
                                { u'description': u'The context type to which the group belongs to. For example- Accounts, Courses etc.',
                                  u'length': 256,
                                  u'name': u'context_type',
                                  u'type': u'varchar'},
                                { u'description': u'Group description by the users.',
                                  u'name': u'category',
                                  u'type': u'text'},
                                { u'description': u'Permissions required to join a group. For example, it can be invitation-only or auto.',
                                  u'length': 256,
                                  u'name': u'join_level',
                                  u'type': u'varchar'},
                                { u'description': u'Default view for groups is the feed.',
                                  u'length': 256,
                                  u'name': u'default_view',
                                  u'type': u'varchar'},
                                { u'description': u'Correlated id for the record for this group in the SIS system (assuming SIS integration is configured)',
                                  u'name': u'sis_source_id',
                                  u'type': u'bigint'},
                                { u'description': u'(Not implemented) Foreign key to group category dimension table.',
                                  u'name': u'group_category_id',
                                  u'type': u'bigint'},
                                { u'description': u'Parent account for this group.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'account',
                                                  u'role': u'account'},
                                  u'name': u'account_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the wiki_dim table.',
                                  u'name': u'wiki_id',
                                  u'type': u'bigint'}],
                  u'description': u'Attributes for groups in canvas. Groups contain two or more students enrolled in a particular course working on an assignment or project together.',
                  u'dw_type': u'dimension',
                  u'hints': { },
                  u'incremental': False,
                  u'tableName': u'group_dim'},
  u'group_fact': { u'columns': [ { u'description': u'Foreign key to the group dimension for a particular group.',
                                   u'name': u'group_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to course dimension.',
                                   u'name': u'parent_course_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to accounts table.',
                                   u'name': u'parent_account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the account dimension for the account associated with the course to which the group belongs to.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'account_dim'},
                                   u'name': u'parent_course_account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the enrollment term table for the parent course.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'enrollment_term',
                                                   u'role': u'enrollment_term'},
                                   u'name': u'enrollment_term_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Maximum number of users that can be accommodated in a group.',
                                   u'name': u'max_membership',
                                   u'type': u'int'},
                                 { u'description': u'Storage Limit allowed per group.',
                                   u'name': u'storage_quota',
                                   u'type': u'bigint'},
                                 { u'description': u'(Not implemented) Foreign key to group category dimension table.',
                                   u'name': u'group_category_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Parent account for this group.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'account',
                                                   u'role': u'account'},
                                   u'name': u'account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the wiki_dim table.',
                                   u'name': u'wiki_id',
                                   u'type': u'bigint'}],
                   u'description': u'Measures for groups.',
                   u'dw_type': u'fact',
                   u'hints': { },
                   u'incremental': False,
                   u'tableName': u'group_fact'},
  u'group_membership_dim': { u'columns': [ { u'description': u'The ID of the membership object',
                                             u'length': 256,
                                             u'name': u'id',
                                             u'type': u'varchar'},
                                           { u'description': u'The ID of the membership object as it appears in the db.',
                                             u'length': 256,
                                             u'name': u'canvas_id',
                                             u'type': u'varchar'},
                                           { u'description': u'Foreign key to the group dimension for a particular group.',
                                             u'name': u'group_id',
                                             u'type': u'bigint'},
                                           { u'description': u"Whether or not the user is a moderator of the group.  Possible values are 'is_moderator' and 'not_moderator'.",
                                             u'name': u'moderator',
                                             u'type': u'enum'},
                                           { u'description': u"The current state of the membership. Current possible values are 'accepted', 'invited', 'requested', and 'deleted'",
                                             u'name': u'workflow_state',
                                             u'type': u'enum'},
                                           { u'description': u'Timestamp when the group membership was first saved in the system.',
                                             u'name': u'created_at',
                                             u'type': u'timestamp'},
                                           { u'description': u'Timestamp when the group membership was last updated in the system.',
                                             u'name': u'updated_at',
                                             u'type': u'timestamp'}],
                             u'description': u'Attributes for groups_membership in canvas.',
                             u'dw_type': u'dimension',
                             u'hints': { },
                             u'incremental': False,
                             u'tableName': u'group_membership_dim'},
  u'group_membership_fact': { u'columns': [ { u'description': u'Foreign key to the group dimension for a particular group.',
                                              u'name': u'group_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to course dimension.',
                                              u'name': u'parent_course_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to accounts table.',
                                              u'name': u'parent_account_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the account dimension for the account associated with the course to which the group belongs to.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'account_dim'},
                                              u'name': u'parent_course_account_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the enrollment term table for the parent course.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'enrollment_term',
                                                              u'role': u'enrollment_term'},
                                              u'name': u'enrollment_term_id',
                                              u'type': u'bigint'},
                                            { u'description': u'Foreign key to the user dimension for the users in the group.',
                                              u'dimension': { u'id': u'id',
                                                              u'name': u'user',
                                                              u'role': u'user'},
                                              u'name': u'user_id',
                                              u'type': u'bigint'},
                                            { u'description': u'The ID of the membership object',
                                              u'length': 256,
                                              u'name': u'group_membership_id',
                                              u'type': u'varchar'}],
                              u'description': u'Measures for groups.',
                              u'dw_type': u'fact',
                              u'hints': { },
                              u'incremental': False,
                              u'tableName': u'group_membership_fact'},
  u'module_completion_requirement_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the module completion requirement.',
                                                          u'name': u'id',
                                                          u'type': u'bigint'},
                                                        { u'description': u'Module that contains the completion requirement.',
                                                          u'name': u'module_id',
                                                          u'type': u'bigint'},
                                                        { u'description': u'Item that is the subject of the completion requirement.',
                                                          u'name': u'module_item_id',
                                                          u'type': u'bigint'},
                                                        { u'description': u'Type of completion event that must be achieved to consider item complete.',
                                                          u'name': u'requirement_type',
                                                          u'type': u'enum'}],
                                          u'description': u'Attributes for a module completion.',
                                          u'dw_type': u'dimension',
                                          u'hints': { },
                                          u'incremental': False,
                                          u'tableName': u'module_completion_requirement_dim'},
  u'module_completion_requirement_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the module completion requirement.',
                                                           u'name': u'module_completion_requirement_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Foreign key to the account the module and the module item belong to.',
                                                           u'dimension': { u'id': u'id',
                                                                           u'name': u'account',
                                                                           u'role': u'account'},
                                                           u'name': u'account_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Assignment associated with the module item.',
                                                           u'name': u'assignment_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Assignment group associated with the module item.',
                                                           u'name': u'assignment_group_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Foreign key to the course associated with this module and the module item.',
                                                           u'dimension': { u'id': u'id',
                                                                           u'name': u'course',
                                                                           u'role': u'course'},
                                                           u'name': u'course_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Discussion topic associated with the module item.',
                                                           u'name': u'discussion_topic_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Editor of the discussion topic associated with the module item.',
                                                           u'dimension': { u'id': u'id',
                                                                           u'name': u'user_dim'},
                                                           u'name': u'discussion_topic_editor_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Enrollment rollup associated with the module item.',
                                                           u'dimension': { u'id': u'id',
                                                                           u'name': u'enrollment_rollup',
                                                                           u'role': u'enrollment_rollup'},
                                                           u'name': u'enrollment_rollup_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Foreign key to the enrollment term associated with this module and the module item.',
                                                           u'dimension': { u'id': u'id',
                                                                           u'name': u'enrollment_term',
                                                                           u'role': u'enrollment_term'},
                                                           u'name': u'enrollment_term_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'File associated with the module item.',
                                                           u'name': u'file_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Module that contains the completion requirement.',
                                                           u'name': u'module_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Item that is the subject of the completion requirement.',
                                                           u'name': u'module_item_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Quiz associated with the module item.',
                                                           u'name': u'quiz_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'User associated with the module item.',
                                                           u'dimension': { u'id': u'id',
                                                                           u'name': u'user',
                                                                           u'role': u'user'},
                                                           u'name': u'user_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Foreign key to the wiki associated with this module and the module item.',
                                                           u'name': u'wiki_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'Wiki page associated with the module_item.',
                                                           u'name': u'wiki_page_id',
                                                           u'type': u'bigint'},
                                                         { u'description': u'For min_score type requirements, the score that must be attained for completion.',
                                                           u'name': u'min_score',
                                                           u'type': u'double precision'}],
                                           u'description': u'Table containing measures related to module completion requirements.',
                                           u'dw_type': u'fact',
                                           u'hints': { },
                                           u'incremental': False,
                                           u'tableName': u'module_completion_requirement_fact'},
  u'module_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the module.',
                                   u'name': u'id',
                                   u'type': u'bigint'},
                                 { u'description': u'Original primary key for module in the Canvas table.',
                                   u'name': u'canvas_id',
                                   u'type': u'bigint'},
                                 { u'description': u'The course that owns this module.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'course',
                                                   u'role': u'course'},
                                   u'name': u'course_id',
                                   u'type': u'bigint'},
                                 { u'description': u"Should module items be completed sequentially?  Valid values are 'required', 'not_required', 'unspecified'.",
                                   u'name': u'require_sequential_progress',
                                   u'type': u'enum'},
                                 { u'description': u"Workflow state for submission lifetime values. Possible values are 'locked', 'completed', 'unlocked' and 'started'.",
                                   u'name': u'workflow_state',
                                   u'type': u'enum'},
                                 { u'description': u'Position of the module on the modules page.',
                                   u'name': u'position',
                                   u'type': u'integer'},
                                 { u'description': u'The name of the module in Canvas.',
                                   u'name': u'name',
                                   u'type': u'text'},
                                 { u'description': u'Date/Time when the module was created.',
                                   u'name': u'created_at',
                                   u'type': u'timestamp'},
                                 { u'description': u'Timestamp when the module was deleted.',
                                   u'name': u'deleted_at',
                                   u'type': u'timestamp'},
                                 { u'description': u'Timestamp when the module will unlock.',
                                   u'name': u'unlock_at',
                                   u'type': u'timestamp'},
                                 { u'description': u'Date/Time when the module was last updated.',
                                   u'name': u'updated_at',
                                   u'type': u'timestamp'}],
                   u'description': u'Attributes for a module.',
                   u'dw_type': u'dimension',
                   u'hints': { },
                   u'incremental': False,
                   u'tableName': u'module_dim'},
  u'module_fact': { u'columns': [ { u'description': u'Foreign key to assignment dimension.',
                                    u'name': u'module_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Foreign key to the account the module belongs to.',
                                    u'dimension': { u'id': u'id',
                                                    u'name': u'account',
                                                    u'role': u'account'},
                                    u'name': u'account_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Foreign key to the course associated with this assignment.',
                                    u'dimension': { u'id': u'id',
                                                    u'name': u'course',
                                                    u'role': u'course'},
                                    u'name': u'course_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Foreign key to the enrollment_term associated with the module_fact course.',
                                    u'dimension': { u'id': u'id',
                                                    u'name': u'enrollment_term',
                                                    u'role': u'enrollment_term'},
                                    u'name': u'enrollment_term_id',
                                    u'type': u'bigint'},
                                  { u'description': u'Foreign key to the wiki associated with the module_fact course.',
                                    u'name': u'wiki_id',
                                    u'type': u'bigint'}],
                    u'description': u'Table containing measures related to modules.',
                    u'dw_type': u'fact',
                    u'hints': { },
                    u'incremental': False,
                    u'tableName': u'module_fact'},
  u'module_item_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the module_item.',
                                        u'name': u'id',
                                        u'type': u'bigint'},
                                      { u'description': u'Original primary key for module_item in the Canvas table.',
                                        u'name': u'canvas_id',
                                        u'type': u'bigint'},
                                      { u'description': u"Key into assignments table for 'Assignment' type items.",
                                        u'name': u'assignment_id',
                                        u'type': u'bigint'},
                                      { u'description': u'The course that owns this module.',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'course',
                                                        u'role': u'course'},
                                        u'name': u'course_id',
                                        u'type': u'bigint'},
                                      { u'description': u"Key into discussion_topics table for 'Discussion' type items.",
                                        u'name': u'discussion_topic_id',
                                        u'type': u'bigint'},
                                      { u'description': u"Key into file table for 'File' type items.",
                                        u'name': u'file_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Parent module for this module item.',
                                        u'name': u'module_id',
                                        u'type': u'bigint'},
                                      { u'description': u"Key into quizzes table for 'Quiz' type items.",
                                        u'name': u'quiz_id',
                                        u'type': u'bigint'},
                                      { u'description': u"Key into wiki_pages table for 'Page' type items.",
                                        u'name': u'wiki_page_id',
                                        u'type': u'bigint'},
                                      { u'description': u"The type of content linked to this item. One of: 'Assignment', 'Attachment', 'DiscussionTopic', 'ContextExternalTool', 'ContextModuleSubHeader', 'ExternalUrl', 'LearningOutcome', 'Quiz', 'Rubric' or 'WikiPage'.",
                                        u'name': u'content_type',
                                        u'type': u'enum'},
                                      { u'description': u'State of the module item.',
                                        u'name': u'workflow_state',
                                        u'type': u'enum'},
                                      { u'description': u'Position of the module item within the module context.',
                                        u'name': u'position',
                                        u'type': u'integer'},
                                      { u'description': u'Title of the module item.',
                                        u'name': u'title',
                                        u'type': u'text'},
                                      { u'description': u'Url for external url type module items.',
                                        u'name': u'url',
                                        u'type': u'text'},
                                      { u'description': u'Date/Time when the module item was created.',
                                        u'name': u'created_at',
                                        u'type': u'timestamp'},
                                      { u'description': u'Date/Time when the module item was last updated.',
                                        u'name': u'updated_at',
                                        u'type': u'timestamp'}],
                        u'description': u'Attributes for a module item.',
                        u'dw_type': u'dimension',
                        u'hints': { },
                        u'incremental': False,
                        u'tableName': u'module_item_dim'},
  u'module_item_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the module_item.',
                                         u'name': u'module_item_id',
                                         u'type': u'bigint'},
                                       { u'description': u'Foreign key to the account the module belongs to.',
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'account',
                                                         u'role': u'account'},
                                         u'name': u'account_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into assignments table for 'Assignment', 'DiscussionTopic', 'File', 'Quiz' type items.",
                                         u'name': u'assignment_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into assignment_groups for 'Assignment', 'File' type items.",
                                         u'name': u'assignment_group_id',
                                         u'type': u'bigint'},
                                       { u'description': u'The course that owns this module.',
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'course',
                                                         u'role': u'course'},
                                         u'name': u'course_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into discussion_topics table for 'DiscussionTopic' type items.",
                                         u'name': u'discussion_topic_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into users table for user who edited 'DiscussionTopic' type items.",
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'user_dim'},
                                         u'name': u'discussion_topic_editor_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into enrollment_rollup table for user associated with 'DiscussionTopic', 'File' type items.",
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'enrollment_rollup',
                                                         u'role': u'enrollment_rollup'},
                                         u'name': u'enrollment_rollup_id',
                                         u'type': u'bigint'},
                                       { u'description': u'Foreign key to the enrollment_term associated with the module course.',
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'enrollment_term',
                                                         u'role': u'enrollment_term'},
                                         u'name': u'enrollment_term_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into file table for 'File' type items.",
                                         u'name': u'file_id',
                                         u'type': u'bigint'},
                                       { u'description': u'Parent module for this module item.',
                                         u'name': u'module_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into quizzes table for 'File', 'Quiz' type items.",
                                         u'name': u'quiz_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into users table for 'DiscussionTopic', 'File', 'WikiPage' type items.",
                                         u'dimension': { u'id': u'id',
                                                         u'name': u'user',
                                                         u'role': u'user'},
                                         u'name': u'user_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into wiki table for 'WikiPage' type items.",
                                         u'name': u'wiki_id',
                                         u'type': u'bigint'},
                                       { u'description': u"Key into wiki_pages table for 'WikiPage' type items.",
                                         u'name': u'wiki_page_id',
                                         u'type': u'bigint'}],
                         u'description': u'Table containing measures related to modules_items.',
                         u'dw_type': u'fact',
                         u'hints': { },
                         u'incremental': False,
                         u'tableName': u'module_item_fact'},
  u'module_prerequisite_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the module prerequisite.',
                                                u'name': u'id',
                                                u'type': u'bigint'},
                                              { u'description': u'Module that contains the prerequisite.',
                                                u'name': u'module_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Module that must be completed to fulfill the prerequisite.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'module_dim'},
                                                u'name': u'prerequisite_module_id',
                                                u'type': u'bigint'}],
                                u'description': u'Attributes for a module prerequisite.',
                                u'dw_type': u'dimension',
                                u'hints': { },
                                u'incremental': False,
                                u'tableName': u'module_prerequisite_dim'},
  u'module_prerequisite_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the module prerequisite.',
                                                 u'name': u'module_prerequisite_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the account the module belongs to.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'account',
                                                                 u'role': u'account'},
                                                 u'name': u'account_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the course associated with this assignment.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'course',
                                                                 u'role': u'course'},
                                                 u'name': u'course_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the enrollment_term associated with the module_fact course.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'enrollment_term',
                                                                 u'role': u'enrollment_term'},
                                                 u'name': u'enrollment_term_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Module that contains the prerequisite.',
                                                 u'name': u'module_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Module that must be completed to fulfill the prerequisite.',
                                                 u'name': u'prerequisite_module_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the wiki associated with the module_fact course.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'wiki_dim'},
                                                 u'name': u'prerequisite_wiki_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the wiki associated with the module_fact course.',
                                                 u'name': u'wiki_id',
                                                 u'type': u'bigint'}],
                                 u'description': u'Table containing measures related to module prerequisites.',
                                 u'dw_type': u'fact',
                                 u'hints': { },
                                 u'incremental': False,
                                 u'tableName': u'module_prerequisite_fact'},
  u'module_progression_completion_requirement_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the module progression completion requirement.',
                                                                      u'name': u'id',
                                                                      u'type': u'bigint'},
                                                                    { u'description': u'Module progression referenced by completion requirement.',
                                                                      u'name': u'module_progression_id',
                                                                      u'type': u'bigint'},
                                                                    { u'description': u'Item that the user has not completed.',
                                                                      u'name': u'module_item_id',
                                                                      u'type': u'bigint'},
                                                                    { u'description': u'Type of completion event that must be achieved to consider item complete.',
                                                                      u'name': u'requirement_type',
                                                                      u'type': u'enum'},
                                                                    { u'description': u"Denotes if the completion event is complete or not. Possible values are 'complete' and 'incomplete'.",
                                                                      u'name': u'completion_status',
                                                                      u'type': u'enum'}],
                                                      u'description': u'Attributes tracking a requirement that remains to be completed by a user.  Not a comprehensive list, typically just holds requirements that have been attempted by the user.',
                                                      u'dw_type': u'dimension',
                                                      u'hints': { },
                                                      u'incremental': False,
                                                      u'tableName': u'module_progression_completion_requirement_dim'},
  u'module_progression_completion_requirement_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the module progression completion requirement.',
                                                                       u'name': u'module_progression_completion_requirement_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the account associated with the module progression and the module item.',
                                                                       u'dimension': { u'id': u'id',
                                                                                       u'name': u'account',
                                                                                       u'role': u'account'},
                                                                       u'name': u'account_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the assignment associated with the module item.',
                                                                       u'name': u'assignment_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the assignment group associated with the module item.',
                                                                       u'name': u'assignment_group_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the course associated with the module progression and the module item.',
                                                                       u'dimension': { u'id': u'id',
                                                                                       u'name': u'course',
                                                                                       u'role': u'course'},
                                                                       u'name': u'course_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the discussion topic associated with the module item.',
                                                                       u'name': u'discussion_topic_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the user editing the discussion topic associated with the module item.',
                                                                       u'dimension': { u'id': u'id',
                                                                                       u'name': u'user_dim'},
                                                                       u'name': u'discussion_topic_editor_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the enrollment rollup associated with the module item.',
                                                                       u'dimension': { u'id': u'id',
                                                                                       u'name': u'enrollment_rollup',
                                                                                       u'role': u'enrollment_rollup'},
                                                                       u'name': u'enrollment_rollup_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the enrollment term associated with the module progression and the module item.',
                                                                       u'dimension': { u'id': u'id',
                                                                                       u'name': u'enrollment_term',
                                                                                       u'role': u'enrollment_term'},
                                                                       u'name': u'enrollment_term_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the file associated with the module item.',
                                                                       u'name': u'file_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Parent module for this module progression and module item.',
                                                                       u'name': u'module_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Item that the user has not completed.',
                                                                       u'name': u'module_item_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Module progression referenced by the completion requirement.',
                                                                       u'name': u'module_progression_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the quiz associated with the module item.',
                                                                       u'name': u'quiz_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the user associated with the module progression and the module item.',
                                                                       u'dimension': { u'id': u'id',
                                                                                       u'name': u'user',
                                                                                       u'role': u'user'},
                                                                       u'name': u'user_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the wiki associated with the module progression and the module item.',
                                                                       u'name': u'wiki_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'Key to the wiki page associated with the module item.',
                                                                       u'name': u'wiki_page_id',
                                                                       u'type': u'bigint'},
                                                                     { u'description': u'For min_score type requirements, the score that must be attained for completion.',
                                                                       u'name': u'min_score',
                                                                       u'type': u'double precision'},
                                                                     { u'description': u'For min_score type requirements, the score that the user has currently achieved.',
                                                                       u'name': u'score',
                                                                       u'type': u'double precision'}],
                                                       u'description': u'Table containing measures related to module progression completion requirements.',
                                                       u'dw_type': u'fact',
                                                       u'hints': { },
                                                       u'incremental': False,
                                                       u'tableName': u'module_progression_completion_requirement_fact'},
  u'module_progression_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the module progression.',
                                               u'name': u'id',
                                               u'type': u'bigint'},
                                             { u'description': u'Original primary key for module progression in the Canvas table.',
                                               u'name': u'canvas_id',
                                               u'type': u'bigint'},
                                             { u'description': u'Parent module for this module progression.',
                                               u'name': u'module_id',
                                               u'type': u'bigint'},
                                             { u'description': u'User being tracked in the module progression.',
                                               u'dimension': { u'id': u'id',
                                                               u'name': u'user',
                                                               u'role': u'user'},
                                               u'name': u'user_id',
                                               u'type': u'bigint'},
                                             { u'description': u'Collapsed state of the module progression.',
                                               u'name': u'collapsed',
                                               u'type': u'enum'},
                                             { u'description': u'The current state of the module progression.',
                                               u'name': u'is_current',
                                               u'type': u'enum'},
                                             { u'description': u'The workflow state of the module progression.',
                                               u'name': u'workflow_state',
                                               u'type': u'enum'},
                                             { u'description': u'Represents the users current position in the module.',
                                               u'name': u'current_position',
                                               u'type': u'integer'},
                                             { u'description': u'Lock version of the module progression.',
                                               u'name': u'lock_version',
                                               u'type': u'integer'},
                                             { u'description': u'Date/Time when the module progression was created.',
                                               u'name': u'created_at',
                                               u'type': u'timestamp'},
                                             { u'description': u'Date/Time when the module progression was completed.',
                                               u'name': u'completed_at',
                                               u'type': u'timestamp'},
                                             { u'description': u'Date/Time when the module progression was evaluated.',
                                               u'name': u'evaluated_at',
                                               u'type': u'timestamp'},
                                             { u'description': u'Date/Time when the module progression was last updated.',
                                               u'name': u'updated_at',
                                               u'type': u'timestamp'}],
                               u'description': u'Attributes for a module progression.',
                               u'dw_type': u'dimension',
                               u'hints': { },
                               u'incremental': False,
                               u'tableName': u'module_progression_dim'},
  u'module_progression_fact': { u'columns': [ { u'description': u'Unique surrogate ID for the module progression.',
                                                u'name': u'module_progression_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the account the module belongs to.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'account',
                                                                u'role': u'account'},
                                                u'name': u'account_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the course associated with this module.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'course',
                                                                u'role': u'course'},
                                                u'name': u'course_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the enrollment_term associated with the module course.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'enrollment_term',
                                                                u'role': u'enrollment_term'},
                                                u'name': u'enrollment_term_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Parent module for this module progression.',
                                                u'name': u'module_id',
                                                u'type': u'bigint'},
                                              { u'description': u'User being tracked in the module progression.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'user',
                                                                u'role': u'user'},
                                                u'name': u'user_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the wiki associated with the module course.',
                                                u'name': u'wiki_id',
                                                u'type': u'bigint'}],
                                u'description': u'Table containing measures related to modules_progression.',
                                u'dw_type': u'fact',
                                u'hints': { },
                                u'incremental': False,
                                u'tableName': u'module_progression_fact'},
  u'pseudonym_dim': { u'columns': [ { u'description': u'Unique surrogate id for the pseudonym.',
                                      u'name': u'id',
                                      u'type': u'bigint'},
                                    { u'description': u'Primary key for this pseudonym in the the Canvas database',
                                      u'name': u'canvas_id',
                                      u'type': u'bigint'},
                                    { u'description': u'Id for the user associated with this pseudonym',
                                      u'dimension': { u'id': u'id',
                                                      u'name': u'user',
                                                      u'role': u'user'},
                                      u'name': u'user_id',
                                      u'type': u'bigint'},
                                    { u'description': u'Id for the account associated with this pseudonym',
                                      u'dimension': { u'id': u'id',
                                                      u'name': u'account',
                                                      u'role': u'account'},
                                      u'name': u'account_id',
                                      u'type': u'bigint'},
                                    { u'description': u'Workflow status indicating that pseudonym is [deleted] or [active]',
                                      u'length': 256,
                                      u'name': u'workflow_state',
                                      u'type': u'varchar'},
                                    { u'description': u'Timestamp of when the user last logged in with this pseudonym',
                                      u'name': u'last_request_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'Timestamp of last time a user logged in with this pseudonym',
                                      u'name': u'last_login_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'Timestamp of when the user logged in',
                                      u'name': u'current_login_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'IP address recorded the last time a user logged in with this pseudonym',
                                      u'length': 256,
                                      u'name': u'last_login_ip',
                                      u'type': u'varchar'},
                                    { u'description': u"IP address  of user's current/last login",
                                      u'length': 256,
                                      u'name': u'current_login_ip',
                                      u'type': u'varchar'},
                                    { u'description': u"Position of user's login credentials",
                                      u'name': u'position',
                                      u'type': u'int'},
                                    { u'description': u'Timestamp when this pseudonym was created in Canvas',
                                      u'name': u'created_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'Timestamp when this pseudonym was last updated in Canvas',
                                      u'name': u'updated_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'True if the password has been auto-generated',
                                      u'name': u'password_auto_generated',
                                      u'type': u'boolean'},
                                    { u'description': u'Timestamp when the pseudonym was deleted (NULL if the pseudonym is still active)',
                                      u'name': u'deleted_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'Correlated id for the record for this course in the SIS system (assuming SIS integration is configured)',
                                      u'length': 256,
                                      u'name': u'sis_user_id',
                                      u'type': u'varchar'},
                                    { u'description': u'Actual login id for a given pseudonym/account',
                                      u'length': 256,
                                      u'name': u'unique_name',
                                      u'type': u'varchar'},
                                    { u'description': u'A secondary unique identifier useful for more complex SIS integrations. This identifier must not change for the user, and must be globally unique.',
                                      u'length': 256,
                                      u'name': u'integration_id',
                                      u'type': u'varchar'},
                                    { u'description': u'The authentication provider this login is associated with. This can be the integer ID of the provider, or the type of the provider (in which case, it will find the first matching provider.)',
                                      u'name': u'authentication_provider_id',
                                      u'type': u'bigint'}],
                      u'description': u'Pseudonyms are logins associated with users.',
                      u'dw_type': u'dimension',
                      u'hints': { },
                      u'incremental': False,
                      u'tableName': u'pseudonym_dim'},
  u'pseudonym_fact': { u'columns': [ { u'description': u'Foreign key to pseudonym dimension table',
                                       u'name': u'pseudonym_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to user associated with this pseudonym',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'user',
                                                       u'role': u'user'},
                                       u'name': u'user_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to account associated with this pseudonym',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'account',
                                                       u'role': u'account'},
                                       u'name': u'account_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Number of times a user has logged in with this pseudonym',
                                       u'name': u'login_count',
                                       u'type': u'int'},
                                     { u'description': u'Number of times failed login attempt to this pseudonym',
                                       u'name': u'failed_login_count',
                                       u'type': u'int'}],
                       u'dw_type': u'fact',
                       u'hints': { },
                       u'incremental': False,
                       u'tableName': u'pseudonym_fact'},
  u'quiz_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the quiz.',
                                 u'name': u'id',
                                 u'type': u'bigint'},
                               { u'description': u'Primary key for this quiz in the quizzes table.',
                                 u'name': u'canvas_id',
                                 u'type': u'bigint'},
                               { u'description': u'Root account ID associated with this quiz.',
                                 u'name': u'root_account_id',
                                 u'type': u'bigint'},
                               { u'description': u"Name of the quiz. Equivalent Canvas API field -> 'title'.",
                                 u'length': 256,
                                 u'name': u'name',
                                 u'type': u'varchar'},
                               { u'description': u'Total point value given to the quiz.',
                                 u'name': u'points_possible',
                                 u'type': u'double precision'},
                               { u'description': u'Description of the quiz.',
                                 u'name': u'description',
                                 u'type': u'text'},
                               { u'description': u"Type of quiz. Possible values are 'practice_quiz', 'assignment', 'graded_survey' and 'survey'. Defaults to 'NULL'.",
                                 u'length': 256,
                                 u'name': u'quiz_type',
                                 u'type': u'varchar'},
                               { u'description': u'Foreign key to the course the quiz belongs to.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'course',
                                                 u'role': u'course'},
                                 u'name': u'course_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                 u'name': u'assignment_id',
                                 u'type': u'bigint'},
                               { u'description': u"Denotes where the quiz is in the workflow. Possible values are 'unpublished', 'published' and 'deleted'. Defaults to 'unpublished'.",
                                 u'length': 256,
                                 u'name': u'workflow_state',
                                 u'type': u'varchar'},
                               { u'description': u"Scoring policy for a quiz that students can take multiple times. Is required and only valid if allowed_attempts > 1. Possible values are 'keep_highest', 'keep_latest' and 'keep_average'. Defaults to 'keep_highest'.",
                                 u'length': 256,
                                 u'name': u'scoring_policy',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates whether students are allowed to submit the quiz anonymously. Possible values are 'allow_anonymous_submissions' and 'disallow_anonymous_submissions'. Defaults to 'disallow_anonymous_submissions'.",
                                 u'length': 256,
                                 u'name': u'anonymous_submissions',
                                 u'type': u'varchar'},
                               { u'description': u"Policy for displaying the questions in the quiz. Possible values are 'multiple_at_a_time' and 'one_at_a_time'. Defaults to 'multiple_at_a_time'. Equivalent Canvas API field -> 'one_question_at_a_time'.",
                                 u'length': 256,
                                 u'name': u'display_questions',
                                 u'type': u'varchar'},
                               { u'description': u"Policy for displaying the answers for each question in the quiz. Possible values are 'in_order' and 'shuffled'. Defaults to 'in_order'. Equivalent Canvas API field -> 'shuffle_answers'.",
                                 u'length': 256,
                                 u'name': u'answer_display_order',
                                 u'type': u'varchar'},
                               { u'description': u"Policy on going back to the previous question. Is valid only if 'display_questions' is set to 'one_at_a_time'. Possible values are 'allow_going_back' and 'disallow_going_back'. Defaults to 'allow_going_back'. Equivalent Canvas API field -> 'cant_go_back'.",
                                 u'length': 256,
                                 u'name': u'go_back_to_previous_question',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates if the quiz can be locked or not. Possible values are 'allow_locking' and 'disallow_locking'. Defaults to 'disallow_locking'.",
                                 u'length': 256,
                                 u'name': u'could_be_locked',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates whether the browser has locked-down when the quiz is being taken. Possible values are 'required' and 'not_required'. Defaults to 'not_required'.",
                                 u'length': 256,
                                 u'name': u'browser_lockdown',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates whether the browser has to be locked-down to display the results. Is valid only if 'hide_results' is set to 'never' or 'until_after_last_attempt' (for the results to be displayed after the last attempt). Possible values are 'required' and 'not_required'. Defaults to 'not_required'.",
                                 u'length': 256,
                                 u'name': u'browser_lockdown_for_displaying_results',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates whether a browser lockdown monitor is required. Possible values are 'required' and 'not_required'. Defaults to 'not_required'.",
                                 u'length': 256,
                                 u'name': u'browser_lockdown_monitor',
                                 u'type': u'varchar'},
                               { u'description': u'Restricts access to the quiz to computers in a specified IP range. Filters can be a comma-separated list of addresses, or an address followed by a mask.',
                                 u'length': 256,
                                 u'name': u'ip_filter',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates whether or not quiz results are shown to students. If set to 'always', students can see their results after any attempt and if set to 'never', students can never see their results. If 'dw_quiz_fact.allowed_attempts > 1' then when set to 'always_after_last_attempt', students can only see their results always, but only after their last attempt. Similarly, if set to 'only_once_after_last_attempt', then students can see their results only after their last attempt, that too only once. Possible values are 'always', 'never', 'always_after_last_attempt' and 'only_once_after_last_attempt'. Defaults to 'always'. Equivalent Canvas API field -> 'hide_results' combined with 'one_time_results'.",
                                 u'length': 256,
                                 u'name': u'show_results',
                                 u'type': u'varchar'},
                               { u'description': u"Dictates whether correct answers are shown when are results are viewed. It's valid only if 'show_results' is set to 'always'. Possible values are 'always', 'never', 'only_once_after_last_attempt' and 'always_after_last_attempt' (Last two are only valid if 'dw_quiz_fact.allowed_attempts > 1') which have a behavior similar to 'show_results'. Defaults to 'always'. Equivalent Canvas API field -> 'show_correct_answers' combined with 'show_correct_answers_last_attempt'.",
                                 u'length': 256,
                                 u'name': u'show_correct_answers',
                                 u'type': u'varchar'},
                               { u'description': u'Day/Time when the correct answers would be shown.',
                                 u'name': u'show_correct_answers_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Day/Time when the correct answers are to be hidden.',
                                 u'name': u'hide_correct_answers_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Time when the quiz was created.',
                                 u'name': u'created_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Time when the quiz was last updated.',
                                 u'name': u'updated_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Time when the quiz was published.',
                                 u'name': u'published_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Day/Time when the quiz is to be unlocked for students.',
                                 u'name': u'unlock_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Day/Time when the quiz is to be locked for students.',
                                 u'name': u'lock_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Day/Time when the quiz is due.',
                                 u'name': u'due_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Time when the quiz was deleted.',
                                 u'name': u'deleted_at',
                                 u'type': u'timestamp'}],
                 u'description': u'Attributes for quiz.',
                 u'dw_type': u'dimension',
                 u'hints': { },
                 u'incremental': False,
                 u'tableName': u'quiz_dim'},
  u'quiz_fact': { u'columns': [ { u'description': u'Foreign key to quiz dimension table.',
                                  u'name': u'quiz_id',
                                  u'type': u'bigint'},
                                { u'description': u'Total point value given to the quiz.',
                                  u'name': u'points_possible',
                                  u'type': u'double precision'},
                                { u'description': u'Time limit, in minutes, to complete the quiz. Set to -1 for no time limit. Defaults to -1.',
                                  u'name': u'time_limit',
                                  u'type': u'int'},
                                { u'description': u'Number of attempts allowed to complete the quiz. Set to -1 for unlimited attempts. Defaults to -1.',
                                  u'name': u'allowed_attempts',
                                  u'type': u'int'},
                                { u'description': u'Number of questions in the current unpublished version of the quiz.',
                                  u'name': u'unpublished_question_count',
                                  u'type': u'int'},
                                { u'description': u'Number of questions in the last published version of the quiz',
                                  u'name': u'question_count',
                                  u'type': u'int'},
                                { u'description': u'Foreign key to the course the quiz belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'course',
                                                  u'role': u'course'},
                                  u'name': u'course_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                  u'name': u'assignment_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the account associated with the course associated with this quiz.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'account_dim'},
                                  u'name': u'course_account_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to enrollment term the quiz belongs to.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'enrollment_term',
                                                  u'role': u'enrollment_term'},
                                  u'name': u'enrollment_term_id',
                                  u'type': u'bigint'}],
                  u'description': u'Measures for quiz.',
                  u'dw_type': u'fact',
                  u'hints': { },
                  u'incremental': False,
                  u'tableName': u'quiz_fact'},
  u'quiz_question_answer_dim': { u'columns': [ { u'description': u'Unique surrogate key for the quiz question answer. As with all surrogate keys in Canvas Data, there is no guarantee of stability. That said, this key is particularly unstable and will likely change from dump to dump even if there are no data change.',
                                                 u'name': u'id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Primary key for this quiz question answer. No table available in Canvas.',
                                                 u'name': u'canvas_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the quiz question dimension column.',
                                                 u'name': u'quiz_question_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Text of the answer.',
                                                 u'name': u'text',
                                                 u'type': u'text'},
                                               { u'description': u'HTML markup of the text.',
                                                 u'name': u'html',
                                                 u'type': u'text'},
                                               { u'description': u'Specific contextual comments for a particular answer.',
                                                 u'name': u'comments',
                                                 u'type': u'text'},
                                               { u'description': u"(Used in 'short_answer_question', also known as 'fill_in_the_blank'. Set to 'NULL' in others) Text following the missing word.",
                                                 u'name': u'text_after_answers',
                                                 u'type': u'text'},
                                               { u'description': u"(Used in 'matching_question', set to 'NULL' in others) Static value of the answer that will be displayed on the left for students to match for.",
                                                 u'length': 256,
                                                 u'name': u'answer_match_left',
                                                 u'type': u'varchar'},
                                               { u'description': u"(Used in 'matching_question', set to 'NULL' in others) Correct match for the value given in 'answer_match_left', displayed in a drop-down with other 'answer_match_right' values.",
                                                 u'length': 256,
                                                 u'name': u'answer_match_right',
                                                 u'type': u'varchar'},
                                               { u'description': u"(Used in 'matching_question', set to 'NULL' in others) List of distractors (incorrect answers), delimited by new lines, that will be seeded with all the 'answer_match_right' values.",
                                                 u'length': 256,
                                                 u'name': u'matching_answer_incorrect_matches',
                                                 u'type': u'varchar'},
                                               { u'description': u"(Used in 'numerical_question', set to 'NULL' in others) Denotes the type of numerical answer that is expected. Possible values are 'exact_answer' and 'range_answer'.",
                                                 u'length': 256,
                                                 u'name': u'numerical_answer_type',
                                                 u'type': u'varchar'},
                                               { u'description': u"(Used in 'fill_in_multiple_blanks_question' and 'multiple_dropdowns_question', set to 'NULL' otherwise) Refers to the ID of the blank(s) in the question text.",
                                                 u'length': 256,
                                                 u'name': u'blank_id',
                                                 u'type': u'varchar'},
                                               { u'description': u"(Used in 'numerical_question' with answer type 'exact_answer', set to 'NULL' otherwise) Value the answer must be equal to.",
                                                 u'name': u'exact',
                                                 u'type': u'double precision'},
                                               { u'description': u"(Used in 'numerical_question' with answer type 'exact_answer', set to 'NULL' otherwise) Margin of error allowed for a student's answer.",
                                                 u'name': u'margin',
                                                 u'type': u'double precision'},
                                               { u'description': u"(Used in 'numerical_question' with answer type 'range_answer', set to 'NULL' otherwise) Start of the allowed range (inclusive).",
                                                 u'name': u'starting_range',
                                                 u'type': u'double precision'},
                                               { u'description': u"(Used in 'numerical_question' with answer type 'range_answer', set to 'NULL' otherwise) End of the allowed range (inclusive).",
                                                 u'name': u'ending_range',
                                                 u'type': u'double precision'}],
                                 u'description': u'Attributes of an answer related to a quiz question.',
                                 u'dw_type': u'dimension',
                                 u'hints': { },
                                 u'incremental': False,
                                 u'tableName': u'quiz_question_answer_dim'},
  u'quiz_question_answer_fact': { u'columns': [ { u'description': u'Foreign key to the quiz question answer dimension table. As with all surrogate keys in Canvas Data, there is no guarantee of stability. That said, this key is particularly unstable and will likely change from dump to dump even if there are no data change.',
                                                  u'name': u'quiz_question_answer_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the quiz question dimension table.',
                                                  u'name': u'quiz_question_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the quiz group dimension table.',
                                                  u'name': u'quiz_question_group_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the quiz dimension table.',
                                                  u'name': u'quiz_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the assessment question dimension table (to be made available in later releases).',
                                                  u'name': u'assessment_question_id',
                                                  u'type': u'bigint'},
                                                { u'description': u"Foreign key to the course this group's quiz belongs to.",
                                                  u'dimension': { u'id': u'id',
                                                                  u'name': u'course',
                                                                  u'role': u'course'},
                                                  u'name': u'course_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                                  u'name': u'assignment_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the account of the course this group belongs to.',
                                                  u'name': u'course_account_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Foreign key to the enrollment term of the course this group belongs to.',
                                                  u'dimension': { u'id': u'id',
                                                                  u'name': u'enrollment_term',
                                                                  u'role': u'enrollment_term'},
                                                  u'name': u'enrollment_term_id',
                                                  u'type': u'bigint'},
                                                { u'description': u'Integer value to determine correctness of the answer. Incorrect answers should be 0, correct answers should be non-negative.',
                                                  u'name': u'weight',
                                                  u'type': u'double precision'},
                                                { u'description': u"(Used in 'numerical_question' with answer type 'exact_answer', set to 'NULL' otherwise) Value the answer must be equal to.",
                                                  u'name': u'exact',
                                                  u'type': u'double precision'},
                                                { u'description': u"(Used in 'numerical_question' with answer type 'exact_answer', set to 'NULL' otherwise) Margin of error allowed for a student's answer.",
                                                  u'name': u'margin',
                                                  u'type': u'double precision'},
                                                { u'description': u"(Used in 'numerical_question' with answer type 'range_answer', set to 'NULL' otherwise) Start of the allowed range (inclusive).",
                                                  u'name': u'starting_range',
                                                  u'type': u'double precision'},
                                                { u'description': u"(Used in 'numerical_question' with answer type 'range_answer', set to 'NULL' otherwise) End of the allowed range (inclusive).",
                                                  u'name': u'ending_range',
                                                  u'type': u'double precision'}],
                                  u'description': u'Measures for answers related to a quiz question.',
                                  u'dw_type': u'fact',
                                  u'hints': { },
                                  u'incremental': False,
                                  u'tableName': u'quiz_question_answer_fact'},
  u'quiz_question_dim': { u'columns': [ { u'description': u'Unique surrogate key for the quiz question.',
                                          u'name': u'id',
                                          u'type': u'bigint'},
                                        { u'description': u"Primary key for this quiz question in the 'quiz_questions' table.",
                                          u'name': u'canvas_id',
                                          u'type': u'bigint'},
                                        { u'description': u'Foreign key to the quiz dimension table.',
                                          u'name': u'quiz_id',
                                          u'type': u'bigint'},
                                        { u'description': u'Foreign key to the quiz group dimension table.',
                                          u'name': u'quiz_question_group_id',
                                          u'type': u'bigint'},
                                        { u'description': u'Order in which the question will be displayed in the quiz relative to other questions associated with the quiz.',
                                          u'name': u'position',
                                          u'type': u'int'},
                                        { u'description': u"Denotes where the quiz question is in the workflow. Possible values are 'unpublished', 'published' and 'deleted'. Defaults to 'unpublished'.",
                                          u'length': 256,
                                          u'name': u'workflow_state',
                                          u'type': u'varchar'},
                                        { u'description': u'Time when the quiz question was created.',
                                          u'name': u'created_at',
                                          u'type': u'timestamp'},
                                        { u'description': u'Time when the quiz question was last updated.',
                                          u'name': u'updated_at',
                                          u'type': u'timestamp'},
                                        { u'description': u'Foreign key to the assessment question dimension table (to be made available in later releases).',
                                          u'name': u'assessment_question_id',
                                          u'type': u'bigint'},
                                        { u'description': u'Version of the assessment question associated with the quiz question (to be made available in later releases).',
                                          u'name': u'assessment_question_version',
                                          u'type': u'int'},
                                        { u'description': u'Name of the question.',
                                          u'length': 256,
                                          u'name': u'name',
                                          u'type': u'varchar'},
                                        { u'description': u"Denotes the type of the question. Possible values are 'calculated_question', 'essay_question', 'file_upload_question', 'fill_in_multiple_blanks_question', 'matching_question', 'multiple_answers_question', 'multiple_choice_question', 'multiple_dropdowns_question', 'numerical_question', 'short_answer_question', 'text_only_question' and 'true_false_question'.",
                                          u'length': 256,
                                          u'name': u'question_type',
                                          u'type': u'varchar'},
                                        { u'description': u'Text content of the question.',
                                          u'name': u'question_text',
                                          u'type': u'text'},
                                        { u'description': u"Denotes if regrading is available for the question. Possible values are 'available' and 'unavailable' for question types 'multiple_answers_question', 'multiple_choice_question', 'true_false_question' and 'NULL' for others. Defaults to 'available' for the allowed question types and 'NULL' for the rest.",
                                          u'length': 256,
                                          u'name': u'regrade_option',
                                          u'type': u'varchar'},
                                        { u'description': u'Comments to be displayed if the student answers the question correctly.',
                                          u'name': u'correct_comments',
                                          u'type': u'text'},
                                        { u'description': u'Comments to be displayed if the student answers the question incorrectly.',
                                          u'name': u'incorrect_comments',
                                          u'type': u'text'},
                                        { u'description': u'Comments to be displayed regardless of how the student answers the question.',
                                          u'name': u'neutral_comments',
                                          u'type': u'text'}],
                          u'description': u'Attributes of a question associated with a quiz.',
                          u'dw_type': u'dimension',
                          u'hints': { },
                          u'incremental': False,
                          u'tableName': u'quiz_question_dim'},
  u'quiz_question_fact': { u'columns': [ { u'description': u'Foreign key to the quiz question dimension table.',
                                           u'name': u'quiz_question_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the quiz dimension table.',
                                           u'name': u'quiz_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the quiz group dimension table.',
                                           u'name': u'quiz_question_group_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the assessment question dimension table (to be made available in later releases).',
                                           u'name': u'assessment_question_id',
                                           u'type': u'bigint'},
                                         { u'description': u"Foreign key to the course this group's quiz belongs to.",
                                           u'dimension': { u'id': u'id',
                                                           u'name': u'course',
                                                           u'role': u'course'},
                                           u'name': u'course_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                           u'name': u'assignment_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the account of the course this group belongs to.',
                                           u'name': u'course_account_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Foreign key to the enrollment term of the course this group belongs to.',
                                           u'dimension': { u'id': u'id',
                                                           u'name': u'enrollment_term',
                                                           u'role': u'enrollment_term'},
                                           u'name': u'enrollment_term_id',
                                           u'type': u'bigint'},
                                         { u'description': u'Maximum number of points that can be awarded for answering the question correctly.',
                                           u'name': u'points_possible',
                                           u'type': u'double precision'}],
                           u'description': u'Measures of a question associated with a quiz.',
                           u'dw_type': u'fact',
                           u'hints': { },
                           u'incremental': False,
                           u'tableName': u'quiz_question_fact'},
  u'quiz_question_group_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the quiz group.',
                                                u'name': u'id',
                                                u'type': u'bigint'},
                                              { u'description': u"Primary key for this quiz group in the 'quiz_question_groups' table.",
                                                u'name': u'canvas_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to quiz dimension.',
                                                u'name': u'quiz_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Name of the quiz group.',
                                                u'length': 256,
                                                u'name': u'name',
                                                u'type': u'varchar'},
                                              { u'description': u'Order in which the questions from this group will be displayed in the quiz relative to other questions in the quiz from other groups.',
                                                u'name': u'position',
                                                u'type': u'int'},
                                              { u'description': u'Time when the quiz question was created.',
                                                u'name': u'created_at',
                                                u'type': u'timestamp'},
                                              { u'description': u'Time when the quiz question was last updated.',
                                                u'name': u'updated_at',
                                                u'type': u'timestamp'}],
                                u'description': u'Attributes for quiz group.',
                                u'dw_type': u'dimension',
                                u'hints': { },
                                u'incremental': False,
                                u'tableName': u'quiz_question_group_dim'},
  u'quiz_question_group_fact': { u'columns': [ { u'description': u'Foreign key to quiz group.',
                                                 u'name': u'quiz_question_group_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Number of questions picked from the group for the quiz the group is associated with.',
                                                 u'name': u'pick_count',
                                                 u'type': u'int'},
                                               { u'description': u'Number of points to assign per question in the group.',
                                                 u'name': u'question_points',
                                                 u'type': u'double precision'},
                                               { u'description': u'Foreign key to quiz dimension.',
                                                 u'name': u'quiz_id',
                                                 u'type': u'bigint'},
                                               { u'description': u"Foreign key to the course this group's quiz belongs to.",
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'course',
                                                                 u'role': u'course'},
                                                 u'name': u'course_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                                 u'name': u'assignment_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the account of the course this group belongs to.',
                                                 u'name': u'course_account_id',
                                                 u'type': u'bigint'},
                                               { u'description': u'Foreign key to the enrollment term of the course this group belongs to.',
                                                 u'dimension': { u'id': u'id',
                                                                 u'name': u'enrollment_term',
                                                                 u'role': u'enrollment_term'},
                                                 u'name': u'enrollment_term_id',
                                                 u'type': u'bigint'}],
                                 u'description': u'Measures related to quiz groups.',
                                 u'dw_type': u'fact',
                                 u'hints': { },
                                 u'incremental': False,
                                 u'tableName': u'quiz_question_group_fact'},
  u'quiz_submission_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the quiz submission.',
                                            u'name': u'id',
                                            u'type': u'bigint'},
                                          { u'description': u"Primary key for this quiz submission in the 'quiz_submissions' Canvas table.",
                                            u'name': u'canvas_id',
                                            u'type': u'bigint'},
                                          { u'description': u'ID of the quiz the quiz submission represents. Foreign key to the quiz dimension table.',
                                            u'name': u'quiz_id',
                                            u'type': u'bigint'},
                                          { u'description': u'ID to the submission the quiz submission represents. Foreign key to the quiz submission dimension table.',
                                            u'name': u'submission_id',
                                            u'type': u'bigint'},
                                          { u'description': u'ID of the user (who is a student) who made the submission. Foreign key to the user dimension table.',
                                            u'dimension': { u'id': u'id',
                                                            u'name': u'user',
                                                            u'role': u'user'},
                                            u'name': u'user_id',
                                            u'type': u'bigint'},
                                          { u'description': u"Denotes the current state of the quiz submission. Possible values are 'untaken', 'complete', 'pending_review', 'preview' and 'settings_only'. Defaults to 'untaken'. An 'untaken' quiz submission is recorded as soon as a student starts the quiz taking process, before even answering the first question. 'pending_review' denotes that a manual submission has been made by the student which has not been completely graded yet. This usually happens when one or more questions in the quiz cannot be autograded (e.g.. 'essay_question' type questions). A 'preview' workflow state is recorded when a Teacher or Admin previews a quiz (even a partial one). 'settings_only' pertains only to quiz moderation events. It stores the settings to create and store moderation events before the student has begun an attempt.",
                                            u'length': 256,
                                            u'name': u'workflow_state',
                                            u'type': u'varchar'},
                                          { u'description': u"There can be two types of quiz states during submission, 1. Quiz submission took place after the quiz was manually unlocked after being locked (but only for a particular student such that (s)he can take the quiz even if it's locked for everyone else). 2. Quiz submission was on-time (that is, when the quiz was never locked). So the two possible values are 'manually_unlocked' and 'never_locked'. Defaults to 'never_locked'.",
                                            u'length': 256,
                                            u'name': u'quiz_state_during_submission',
                                            u'type': u'varchar'},
                                          { u'description': u"Denotes if the score has been manually overridden by a teacher to reflect the score of a previous attempt (as opposed to a score calculated by the quiz's scoring policy. Possible values are 'manually_overridden' or the general quiz scoring policies, i.e. 'keep_highest', 'keep_latest' and 'keep_average'. Defaults to the scoring policy of the quiz the submission is associated with.",
                                            u'length': 256,
                                            u'name': u'submission_scoring_policy',
                                            u'type': u'varchar'},
                                          { u'description': u"Denotes where the submission was received from. Possible values are 'student' and 'test_preview'. Defaults to 'student'.",
                                            u'length': 256,
                                            u'name': u'submission_source',
                                            u'type': u'varchar'},
                                          { u'description': u'Denotes whether the student has viewed their results to the quiz.',
                                            u'length': 256,
                                            u'name': u'has_seen_results',
                                            u'type': u'varchar'},
                                          { u'description': u'Construct for previewing a quiz.',
                                            u'length': 256,
                                            u'name': u'temporary_user_code',
                                            u'type': u'varchar'},
                                          { u'description': u'Time when the quiz submission was created.',
                                            u'name': u'created_at',
                                            u'type': u'timestamp'},
                                          { u'description': u'Time when the quiz submission was last updated.',
                                            u'name': u'updated_at',
                                            u'type': u'timestamp'},
                                          { u'description': u'Time at which the student started the quiz submission.',
                                            u'name': u'started_at',
                                            u'type': u'timestamp'},
                                          { u'description': u'Time at which the student submitted the quiz submission.',
                                            u'name': u'finished_at',
                                            u'type': u'timestamp'},
                                          { u'description': u'Time at which the quiz submission will be overdue, and will be flagged as a late submission.',
                                            u'name': u'due_at',
                                            u'type': u'timestamp'}],
                            u'description': u'Attributes for the last submitted quiz',
                            u'dw_type': u'dimension',
                            u'hints': { },
                            u'incremental': False,
                            u'tableName': u'quiz_submission_dim'},
  u'quiz_submission_fact': { u'columns': [ { u'description': u"Denotes the score for this submission. Its value would be NULL when they are in the 'preview', 'untaken' OR 'settings_only' workflow states (since it is associated with quiz moderation events). Or its value should not be NULL when workflow state is either 'complete' or 'pending_review'. It defaults to NULL.",
                                             u'name': u'score',
                                             u'type': u'double precision'},
                                           { u'description': u"For quizzes that allow multiple attempts, this is the actual score that will be associated with the user for this quiz. This score depends on the scoring policy we have for the submission in the quiz submission dimension table, the workflow state being 'completed' or 'pending_review' and the allowed attempts to be greater than 1. Its value can be NULL when not all these required conditions are met.",
                                             u'name': u'kept_score',
                                             u'type': u'double precision'},
                                           { u'description': u"Contains the same value as 'finished_at'. Provided to support backward compatibility with the existing table in production.",
                                             u'name': u'date',
                                             u'type': u'timestamp'},
                                           { u'description': u'Foreign key to the course this submission belongs to.',
                                             u'dimension': { u'id': u'id',
                                                             u'name': u'course',
                                                             u'role': u'course'},
                                             u'name': u'course_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the enrollment term of the course this submission belongs to.',
                                             u'dimension': { u'id': u'id',
                                                             u'name': u'enrollment_term',
                                                             u'role': u'enrollment_term'},
                                             u'name': u'enrollment_term_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the account of the course this submission belongs to.',
                                             u'name': u'course_account_id',
                                             u'type': u'bigint'},
                                           { u'description': u'ID of the quiz the quiz submission represents. Foreign key to the quiz dimension table.',
                                             u'name': u'quiz_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                             u'name': u'assignment_id',
                                             u'type': u'bigint'},
                                           { u'description': u'ID of the user (who is a student) who made the submission. Foreign key to the user dimension table.',
                                             u'dimension': { u'id': u'id',
                                                             u'name': u'user',
                                                             u'role': u'user'},
                                             u'name': u'user_id',
                                             u'type': u'bigint'},
                                           { u'description': u'ID to the submission the quiz submission represents. Foreign key to the quiz submission dimension table.',
                                             u'name': u'submission_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the enrollment roll-up dimension table.',
                                             u'dimension': { u'id': u'id',
                                                             u'name': u'enrollment_rollup',
                                                             u'role': u'enrollment_rollup'},
                                             u'name': u'enrollment_rollup_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Foreign key to the quiz submission dimension table.',
                                             u'name': u'quiz_submission_id',
                                             u'type': u'bigint'},
                                           { u'description': u'Maximum points that can be scored in this quiz.',
                                             u'name': u'quiz_points_possible',
                                             u'type': u'double precision'},
                                           { u'description': u"Original score of the quiz submission prior to any re-grading. It's NULL if the submission has never been regraded. Defaults to NULL.",
                                             u'name': u'score_before_regrade',
                                             u'type': u'double precision'},
                                           { u'description': u"Number of points the quiz submission's score was fudged (changed) by. Values can be negative or positive. Defaults to 0.",
                                             u'name': u'fudge_points',
                                             u'type': u'double precision'},
                                           { u'description': u'Denotes the total number of attempts made by the student for the quiz. Is valid only if the quiz allows multiple attempts.',
                                             u'name': u'total_attempts',
                                             u'type': u'int'},
                                           { u'description': u'Number of times the student was allowed to re-take the quiz over the multiple-attempt limit.',
                                             u'name': u'extra_attempts',
                                             u'type': u'int'},
                                           { u'description': u'Amount of extra time allowed for the quiz submission, in minutes.',
                                             u'name': u'extra_time',
                                             u'type': u'int'},
                                           { u'description': u'Time taken, in seconds, to finish the quiz.',
                                             u'name': u'time_taken',
                                             u'type': u'int'}],
                             u'description': u'Measures for the last submitted quiz',
                             u'dw_type': u'fact',
                             u'hints': { },
                             u'incremental': False,
                             u'tableName': u'quiz_submission_fact'},
  u'quiz_submission_historical_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the quiz submission.',
                                                       u'name': u'id',
                                                       u'type': u'bigint'},
                                                     { u'description': u"Primary key for this quiz submission in the 'quiz_submissions' Canvas table.",
                                                       u'name': u'canvas_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'ID of the quiz the quiz submission represents. Foreign key to the quiz dimension table.',
                                                       u'name': u'quiz_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'ID to the submission the quiz submission represents. Foreign key to the quiz submission dimension table.',
                                                       u'name': u'submission_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'ID of the user (who is a student) who made the submission. Foreign key to the user dimension table.',
                                                       u'dimension': { u'id': u'id',
                                                                       u'name': u'user',
                                                                       u'role': u'user'},
                                                       u'name': u'user_id',
                                                       u'type': u'bigint'},
                                                     { u'description': u'Version number of this quiz submission.',
                                                       u'name': u'version_number',
                                                       u'type': u'int'},
                                                     { u'description': u"Denotes if the quiz submission is a current or previous submission. Possible values are 'current_submission' and 'previous_submission'. Defaults to 'current_submission'.",
                                                       u'length': 256,
                                                       u'name': u'submission_state',
                                                       u'type': u'varchar'},
                                                     { u'description': u"Denotes the current state of the quiz submission. Possible values are 'untaken', 'complete', 'pending_review', 'preview' and 'settings_only'. Out of these, 'settings_only' pertains only to quiz moderation events. It stores the settings to create and store moderation events before the student has begun an attempt. Defaults to 'untaken'.",
                                                       u'length': 256,
                                                       u'name': u'workflow_state',
                                                       u'type': u'varchar'},
                                                     { u'description': u"There can be two types of quiz states during submission, 1. Quiz submission took place after the quiz was manually unlocked after being locked (but only for a particular student such that (s)he can take the quiz even if it's locked for everyone else). 2. Quiz submission was on-time (that is, when the quiz was never locked). So the two possible values are 'manually_unlocked' and 'never_locked'. Defaults to 'never_locked'.",
                                                       u'length': 256,
                                                       u'name': u'quiz_state_during_submission',
                                                       u'type': u'varchar'},
                                                     { u'description': u"Denotes if the score has been manually overridden by a teacher to reflect the score of a previous attempt (as opposed to a score calculated by the quiz's scoring policy. Possible values are 'manually_overridden' or the general quiz scoring policies, i.e. 'keep_highest', 'keep_latest' and 'keep_average'. Defaults to the scoring policy of the quiz the submission is associated with.",
                                                       u'length': 256,
                                                       u'name': u'submission_scoring_policy',
                                                       u'type': u'varchar'},
                                                     { u'description': u"Denotes where the submission was received from. Possible values are 'student' and 'test_preview'. Defaults to 'student'.",
                                                       u'length': 256,
                                                       u'name': u'submission_source',
                                                       u'type': u'varchar'},
                                                     { u'description': u'Denotes whether the student has viewed their results to the quiz.',
                                                       u'length': 256,
                                                       u'name': u'has_seen_results',
                                                       u'type': u'varchar'},
                                                     { u'description': u'Construct for previewing a quiz.',
                                                       u'length': 256,
                                                       u'name': u'temporary_user_code',
                                                       u'type': u'varchar'},
                                                     { u'description': u'Time when the quiz submission was created.',
                                                       u'name': u'created_at',
                                                       u'type': u'timestamp'},
                                                     { u'description': u'Time when the quiz submission was last updated.',
                                                       u'name': u'updated_at',
                                                       u'type': u'timestamp'},
                                                     { u'description': u'Time at which the student started the quiz submission.',
                                                       u'name': u'started_at',
                                                       u'type': u'timestamp'},
                                                     { u'description': u'Time at which the student submitted the quiz submission.',
                                                       u'name': u'finished_at',
                                                       u'type': u'timestamp'},
                                                     { u'description': u'Time at which the quiz submission will be overdue, and will be flagged as a late submission.',
                                                       u'name': u'due_at',
                                                       u'type': u'timestamp'}],
                                       u'description': u'Attributes for all submitted quizzes',
                                       u'dw_type': u'dimension',
                                       u'hints': { },
                                       u'incremental': False,
                                       u'tableName': u'quiz_submission_historical_dim'},
  u'quiz_submission_historical_fact': { u'columns': [ { u'description': u"Denotes the score for this submission. Its value would be NULL when they are in the 'preview', 'untaken' OR 'settings_only' workflow states (since it is associated with quiz moderation events). Or its value should not be NULL when workflow state is either 'complete' or 'pending_review'. It defaults to NULL.",
                                                        u'name': u'score',
                                                        u'type': u'double precision'},
                                                      { u'description': u"For quizzes that allow multiple attempts, this is the actual score that will be associated with the user for this quiz. This score depends on the scoring policy we have for the submission in the quiz submission dimension table, the workflow state being 'completed' or 'pending_review' and the allowed attempts to be greater than 1. Its value can be NULL when not all these required conditions are met.",
                                                        u'name': u'kept_score',
                                                        u'type': u'double precision'},
                                                      { u'description': u"Contains the same value as 'finished_at'. Provided to support backward compatibility with the existing table in production.",
                                                        u'name': u'date',
                                                        u'type': u'timestamp'},
                                                      { u'description': u'Foreign key to the course this submission belongs to.',
                                                        u'dimension': { u'id': u'id',
                                                                        u'name': u'course',
                                                                        u'role': u'course'},
                                                        u'name': u'course_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Foreign key to the enrollment term of the course this submission belongs to.',
                                                        u'dimension': { u'id': u'id',
                                                                        u'name': u'enrollment_term',
                                                                        u'role': u'enrollment_term'},
                                                        u'name': u'enrollment_term_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Foreign key to the account of the course this submission belongs to.',
                                                        u'name': u'course_account_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'ID of the quiz the quiz submission represents. Foreign key to the quiz dimension table.',
                                                        u'name': u'quiz_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Foreign key to the assignment the quiz belongs to.',
                                                        u'name': u'assignment_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'ID of the user (who is a student) who made the submission. Foreign key to the user dimension table.',
                                                        u'dimension': { u'id': u'id',
                                                                        u'name': u'user',
                                                                        u'role': u'user'},
                                                        u'name': u'user_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'ID to the submission the quiz submission represents. Foreign key to the quiz submission dimension table.',
                                                        u'name': u'submission_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Foreign key to the enrollment roll-up dimension table.',
                                                        u'dimension': { u'id': u'id',
                                                                        u'name': u'enrollment_rollup',
                                                                        u'role': u'enrollment_rollup'},
                                                        u'name': u'enrollment_rollup_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Foreign key to the quiz submission dimension table.',
                                                        u'name': u'quiz_submission_historical_id',
                                                        u'type': u'bigint'},
                                                      { u'description': u'Maximum points that can be scored in this quiz.',
                                                        u'name': u'quiz_points_possible',
                                                        u'type': u'double precision'},
                                                      { u'description': u"Original score of the quiz submission prior to any re-grading. It's NULL if the submission has never been regraded. Defaults to NULL.",
                                                        u'name': u'score_before_regrade',
                                                        u'type': u'double precision'},
                                                      { u'description': u"Number of points the quiz submission's score was fudged (changed) by. Values can be negative or positive. Defaults to 0.",
                                                        u'name': u'fudge_points',
                                                        u'type': u'double precision'},
                                                      { u'description': u'Denotes the total number of attempts made by the student for the quiz. Is valid only if the quiz allows multiple attempts.',
                                                        u'name': u'total_attempts',
                                                        u'type': u'int'},
                                                      { u'description': u'Number of times the student was allowed to re-take the quiz over the multiple-attempt limit.',
                                                        u'name': u'extra_attempts',
                                                        u'type': u'int'},
                                                      { u'description': u'Amount of extra time allowed for the quiz submission, in minutes.',
                                                        u'name': u'extra_time',
                                                        u'type': u'int'},
                                                      { u'description': u'Time taken, in seconds, to finish the quiz.',
                                                        u'name': u'time_taken',
                                                        u'type': u'int'}],
                                        u'description': u'Measures for the all submitted quizzes',
                                        u'dw_type': u'fact',
                                        u'hints': { },
                                        u'incremental': False,
                                        u'tableName': u'quiz_submission_historical_fact'},
  u'requests': { u'columns': [ { u'description': u'Request ID assigned by the canvas system to the request.',
                                 u'name': u'id',
                                 u'type': u'guid'},
                               { u'description': u'Timestamp when the request was made in UTC.',
                                 u'name': u'timestamp',
                                 u'sortKey': True,
                                 u'type': u'datetime'},
                               { u'description': u'Year when the request was made.',
                                 u'length': 256,
                                 u'name': u'timestamp_year',
                                 u'type': u'varchar'},
                               { u'description': u'Month when the request was made.',
                                 u'length': 256,
                                 u'name': u'timestamp_month',
                                 u'type': u'varchar'},
                               { u'description': u'Day when the request was made.',
                                 u'length': 256,
                                 u'name': u'timestamp_day',
                                 u'type': u'varchar'},
                               { u'description': u'Foreign key in user_dim for the user that made the request. If the request was made by one user masquerading as another, then this column contains the ID of the user being masqueraded as.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'user',
                                                 u'role': u'user'},
                                 u'name': u'user_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key in course_dim for the course that owned the page requested. Set to NULL if not applicable.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'course',
                                                 u'role': u'course'},
                                 u'name': u'course_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key in account_dim for the root account on which this request was made.',
                                 u'name': u'root_account_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key in account_dim for the account the associated course is owned by.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'account_dim'},
                                 u'name': u'course_account_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key in quiz_dim if the page request is for a quiz, otherwise NULL.',
                                 u'name': u'quiz_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key in discussion_dim if page request is for a discussion, otherwise NULL.',
                                 u'name': u'discussion_id',
                                 u'type': u'bigint'},
                               { u'description': u'Foreign key in conversation_dim if page request is for a conversation, otherwise NULL.',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'conversation_dim'},
                                 u'name': u'conversation_id',
                                 u'type': u'bigint'},
                               { u'description': u'Assignment foreign key if page request is for an assignment, otherwise NULL.',
                                 u'name': u'assignment_id',
                                 u'type': u'bigint'},
                               { u'description': u'URL which was requested.',
                                 u'name': u'url',
                                 u'type': u'text'},
                               { u'description': u'User agent header received from the users browser/client software.',
                                 u'name': u'user_agent',
                                 u'type': u'text'},
                               { u'description': u'HTTP method/verb (GET, PUT, POST etc.) that was sent with the request.',
                                 u'length': 256,
                                 u'name': u'http_method',
                                 u'type': u'varchar'},
                               { u'description': u'IP address that was recorded from the request.',
                                 u'length': 256,
                                 u'name': u'remote_ip',
                                 u'type': u'varchar'},
                               { u'description': u'Total time required to service the request in microseconds.',
                                 u'name': u'interaction_micros',
                                 u'type': u'bigint'},
                               { u'description': u'The controller the Canvas web application used to service this request.',
                                 u'length': 256,
                                 u'name': u'web_application_controller',
                                 u'type': u'varchar'},
                               { u'description': u'Controller the Canvas web application used to service this request. (There is a typo in the field name, in order to minimize impact, this will be changed in a future version of Canvas Data.)',
                                 u'length': 256,
                                 u'name': u'web_applicaiton_action',
                                 u'type': u'varchar'},
                               { u'description': u'Containing object type the Canvas web application used to service this request.',
                                 u'length': 256,
                                 u'name': u'web_application_context_type',
                                 u'type': u'varchar'},
                               { u'description': u"Containing object's ID the Canvas web application used to service this request.",
                                 u'length': 256,
                                 u'name': u'web_application_context_id',
                                 u'type': u'varchar'},
                               { u'description': u'If the request was processed by one user masquerading as another, then this column contains the real user ID of the user.',
                                 u'name': u'real_user_id',
                                 u'type': u'bigint'},
                               { u'description': u"ID of the user's session where this request was made.",
                                 u'length': 256,
                                 u'name': u'session_id',
                                 u'type': u'varchar'},
                               { u'description': u'(Not implemented) Foreign key to the user agent dimension table.',
                                 u'name': u'user_agent_id',
                                 u'type': u'bigint'},
                               { u'description': u'HTTP status of the request.',
                                 u'length': 10,
                                 u'name': u'http_status',
                                 u'type': u'varchar'},
                               { u'description': u'HTTP protocol version.',
                                 u'length': 256,
                                 u'name': u'http_version',
                                 u'type': u'varchar'}],
                 u'description': u"Pageview requests. Disclaimer:   The data in the requests table is a 'best effort' attempt, and is not guaranteed to be complete or wholly accurate. This data is meant to be used for rollups and analysis in the aggregate, _not_ in isolation for auditing, or other high-stakes analysis involving examining single users or small samples.    As this data is generated from the Canvas logs files, not a transactional database, there are many places along the way data can be lost and/or duplicated (though uncommon).   Additionally, given the size of this data, our processes are often done on monthly cycles for many parts of the requests tables, so as errors occur they can only be rectified monthly.",
                 u'dw_type': u'both',
                 u'hints': { u'sort_key': u'timestamp'},
                 u'incremental': True,
                 u'tableName': u'requests'},
  u'role_dim': { u'columns': [ { u'description': u'Unique surrogate id for the role.',
                                 u'name': u'id',
                                 u'type': u'bigint'},
                               { u'description': u'Primary key for this record in the Canvas roles table',
                                 u'name': u'canvas_id',
                                 u'type': u'bigint'},
                               { u'description': u"Foreign key to the account dimension for this role's root account.",
                                 u'name': u'root_account_id',
                                 u'type': u'bigint'},
                               { u'description': u'The foreign key to the account that is in the role',
                                 u'dimension': { u'id': u'id',
                                                 u'name': u'account',
                                                 u'role': u'account'},
                                 u'name': u'account_id',
                                 u'type': u'bigint'},
                               { u'description': u'The name of role, previously was "role_name" on the enrollments_dim',
                                 u'length': 256,
                                 u'name': u'name',
                                 u'type': u'varchar'},
                               { u'description': u'The built in type this role is based on.',
                                 u'length': 256,
                                 u'name': u'base_role_type',
                                 u'type': u'varchar'},
                               { u'description': u'Workflow status indicating that the role is [deleted] or [inactive]',
                                 u'length': 256,
                                 u'name': u'workflow_state',
                                 u'type': u'varchar'},
                               { u'description': u'Timestamp of the first time the role was entered into the system',
                                 u'name': u'created_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Timestamp of the last time the role was updated',
                                 u'name': u'updated_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Timestamp of when the role was removed from the system',
                                 u'name': u'deleted_at',
                                 u'type': u'timestamp'}],
                 u'description': u'Give the possible roles for an enrolled user',
                 u'dw_type': u'dimension',
                 u'hints': { },
                 u'incremental': False,
                 u'tableName': u'role_dim'},
  u'score_dim': { u'columns': [ { u'description': u'Unique surrogate identifier for the  score.',
                                  u'name': u'id',
                                  u'type': u'bigint'},
                                { u'description': u'Primary key for the score.',
                                  u'name': u'canvas_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the Enrollment table.',
                                  u'name': u'enrollment_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the grading period group table.',
                                  u'name': u'grading_period_id',
                                  u'type': u'bigint'},
                                { u'description': u'Timestamp when record was created.',
                                  u'name': u'created_at',
                                  u'type': u'timestamp'},
                                { u'description': u'Timestamp when record was last updated.',
                                  u'name': u'updated_at',
                                  u'type': u'timestamp'},
                                { u'description': u"workflow state for the score.  Possibe values are 'active', 'deleted'",
                                  u'length': 256,
                                  u'name': u'workflow_state',
                                  u'type': u'varchar'}],
                  u'description': u'Attributes for scores. You can think of a score as synonymous with a cell inside the gradebook.',
                  u'dw_type': u'dimension',
                  u'hints': { },
                  u'incremental': False,
                  u'tableName': u'score_dim'},
  u'score_fact': { u'columns': [ { u'description': u'Unique surrogate identifier for the score.',
                                   u'name': u'score_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Primary key for the score.',
                                   u'name': u'canvas_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the Account group table.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'account',
                                                   u'role': u'account'},
                                   u'name': u'account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the Course group table.',
                                   u'dimension': { u'id': u'id',
                                                   u'name': u'course',
                                                   u'role': u'course'},
                                   u'name': u'course_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the Enrollment table.',
                                   u'name': u'enrollment_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the grading period group table.',
                                   u'name': u'grading_period_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Foreign key to the grading period group table.',
                                   u'name': u'grading_period_group_id',
                                   u'type': u'bigint'},
                                 { u'description': u'One hop ID to the Account table for the grading period group table.',
                                   u'name': u'grading_period_group_account_id',
                                   u'type': u'bigint'},
                                 { u'description': u'Current score.',
                                   u'name': u'current_score',
                                   u'type': u'double precision'},
                                 { u'description': u'Final score.',
                                   u'name': u'final_score',
                                   u'type': u'double precision'}],
                   u'description': u'Table containing measures for scores within Canvas gradebook.',
                   u'dw_type': u'fact',
                   u'hints': { },
                   u'incremental': False,
                   u'tableName': u'score_fact'},
  u'submission_comment_dim': { u'columns': [ { u'name': u'id',
                                               u'type': u'bigint'},
                                             { u'name': u'canvas_id',
                                               u'type': u'bigint'},
                                             { u'name': u'submission_id',
                                               u'type': u'bigint'},
                                             { u'description': u'(Deprecated) No longer used in Canvas.',
                                               u'dimension': { u'id': u'id',
                                                               u'name': u'user_dim'},
                                               u'name': u'recipient_id',
                                               u'type': u'bigint'},
                                             { u'dimension': { u'id': u'id',
                                                               u'name': u'user_dim'},
                                               u'name': u'author_id',
                                               u'type': u'bigint'},
                                             { u'dimension': { u'id': u'id',
                                                               u'name': u'user_dim'},
                                               u'name': u'assessment_request_id',
                                               u'type': u'bigint'},
                                             { u'length': 256,
                                               u'name': u'group_comment_id',
                                               u'type': u'varchar'},
                                             { u'name': u'comment',
                                               u'type': u'text'},
                                             { u'length': 256,
                                               u'name': u'author_name',
                                               u'type': u'varchar'},
                                             { u'name': u'created_at',
                                               u'type': u'timestamp'},
                                             { u'name': u'updated_at',
                                               u'type': u'timestamp'},
                                             { u'name': u'anonymous',
                                               u'type': u'boolean'},
                                             { u'name': u'teacher_only_comment',
                                               u'type': u'boolean'},
                                             { u'name': u'hidden',
                                               u'type': u'boolean'}],
                               u'dw_type': u'dimension',
                               u'hints': { },
                               u'incremental': False,
                               u'tableName': u'submission_comment_dim'},
  u'submission_comment_fact': { u'columns': [ { u'description': u'Foreign key to the submission comment dimension related to the comment',
                                                u'name': u'submission_comment_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the submission dimension related to the comment',
                                                u'name': u'submission_id',
                                                u'type': u'bigint'},
                                              { u'description': u'(Deprecated) No longer used in Canvas.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'user_dim'},
                                                u'name': u'recipient_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the user dimension for the author of the comment',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'user_dim'},
                                                u'name': u'author_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to assignment dimension',
                                                u'name': u'assignment_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to course dimension of course associated with the assignment.',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'course',
                                                                u'role': u'course'},
                                                u'name': u'course_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign Key to enrollment term table',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'enrollment_term',
                                                                u'role': u'enrollment_term'},
                                                u'name': u'enrollment_term_id',
                                                u'type': u'bigint'},
                                              { u'description': u'Foreign key to the account dimension of the account associated with the course associated with the assignment',
                                                u'dimension': { u'id': u'id',
                                                                u'name': u'account_dim'},
                                                u'name': u'course_account_id',
                                                u'type': u'bigint'},
                                              { u'description': u'The message size in bytes.',
                                                u'name': u'message_size_bytes',
                                                u'type': u'int'},
                                              { u'description': u'The message size in characters.',
                                                u'name': u'message_character_count',
                                                u'type': u'int'},
                                              { u'description': u'The message size in words using space and common punctuation as word breaks.',
                                                u'name': u'message_word_count',
                                                u'type': u'int'},
                                              { u'description': u'The number of lines in a message.',
                                                u'name': u'message_line_count',
                                                u'type': u'int'}],
                                u'dw_type': u'fact',
                                u'hints': { },
                                u'incremental': False,
                                u'tableName': u'submission_comment_fact'},
  u'submission_comment_participant_dim': { u'columns': [ { u'name': u'id',
                                                           u'type': u'bigint'},
                                                         { u'name': u'canvas_id',
                                                           u'type': u'bigint'},
                                                         { u'length': 256,
                                                           u'name': u'participation_type',
                                                           u'type': u'varchar'},
                                                         { u'name': u'created_at',
                                                           u'type': u'timestamp'},
                                                         { u'name': u'updated_at',
                                                           u'type': u'timestamp'}],
                                           u'dw_type': u'dimension',
                                           u'hints': { },
                                           u'incremental': False,
                                           u'tableName': u'submission_comment_participant_dim'},
  u'submission_comment_participant_fact': { u'columns': [ { u'description': u'Foreign key to the submission comment participant dimension',
                                                            u'name': u'submission_comment_participant_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign key to the submission comment dimension for the comment',
                                                            u'name': u'submission_comment_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign key to the user dimension of the user who made the comment',
                                                            u'dimension': { u'id': u'id',
                                                                            u'name': u'user',
                                                                            u'role': u'user'},
                                                            u'name': u'user_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u"Foreign key to the submission dimension related to this participant's comment",
                                                            u'name': u'submission_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign key to assignment dimension',
                                                            u'name': u'assignment_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign key to course dimension of course associated with the assignment.',
                                                            u'dimension': { u'id': u'id',
                                                                            u'name': u'course',
                                                                            u'role': u'course'},
                                                            u'name': u'course_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign Key to enrollment term table',
                                                            u'dimension': { u'id': u'id',
                                                                            u'name': u'enrollment_term',
                                                                            u'role': u'enrollment_term'},
                                                            u'name': u'enrollment_term_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign key to the account dimension of the account associated with the course associated with the assignment',
                                                            u'dimension': { u'id': u'id',
                                                                            u'name': u'account_dim'},
                                                            u'name': u'course_account_id',
                                                            u'type': u'bigint'},
                                                          { u'description': u'Foreign key to the enrollment roll-up dimension table',
                                                            u'dimension': { u'id': u'id',
                                                                            u'name': u'enrollment_rollup',
                                                                            u'role': u'enrollment_rollup'},
                                                            u'name': u'enrollment_rollup_id',
                                                            u'type': u'bigint'}],
                                            u'dw_type': u'fact',
                                            u'hints': { },
                                            u'incremental': False,
                                            u'tableName': u'submission_comment_participant_fact'},
  u'submission_dim': { u'columns': [ { u'description': u'Unique surrogate ID for the submission.',
                                       u'name': u'id',
                                       u'type': u'bigint'},
                                     { u'description': u'Primary key of this record in the Canvas submissions table.',
                                       u'name': u'canvas_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Text content for the submission.',
                                       u'name': u'body',
                                       u'type': u'text'},
                                     { u'description': u'URL content for the submission.',
                                       u'length': 256,
                                       u'name': u'url',
                                       u'type': u'varchar'},
                                     { u'description': u'Letter grade mapped from the score by the grading scheme.',
                                       u'length': 256,
                                       u'name': u'grade',
                                       u'type': u'varchar'},
                                     { u'description': u'Timestamp of when the submission was submitted.',
                                       u'name': u'submitted_at',
                                       u'type': u'timestamp'},
                                     { u'description': u"Type of submission. Possible values are 'discussion_topic', 'external_tool', 'media_recording', 'online_file_upload', 'online_quiz', 'online_text_entry', 'online_upload' and 'online_url'.",
                                       u'name': u'submission_type',
                                       u'type': u'enum'},
                                     { u'description': u"Workflow state for submission lifetime values. Possible values are 'graded', 'pending_review', 'submitted' and 'unsubmitted'.",
                                       u'name': u'workflow_state',
                                       u'type': u'enum'},
                                     { u'description': u'Timestamp of when the submission was created.',
                                       u'name': u'created_at',
                                       u'type': u'timestamp'},
                                     { u'description': u'Timestamp of when the submission was last updated.',
                                       u'name': u'updated_at',
                                       u'type': u'timestamp'},
                                     { u'description': u"Valid only when there is a file/attachment associated with the submission. By default, this attribute is set to 'false' when making the assignment submission. When a submission has a file/attachment associated with it, upon submitting the assignment a snapshot is saved and its' value is set to 'true'. Defaults to 'NULL'.",
                                       u'name': u'processed',
                                       u'type': u'boolean'},
                                     { u'description': u'(Deprecated) No longer used in Canvas.',
                                       u'name': u'process_attempts',
                                       u'type': u'int'},
                                     { u'description': u"Valid only when a score has been assigned to a submission. This is set to 'false' if a student makes a new submission to an already graded assignment. This is done to indicate that the current grade given by the teacher is not for the most recent submission by the student. It is set to 'true' if a score has been given and there is no new submission. Defaults to 'NULL'.",
                                       u'name': u'grade_matches_current_submission',
                                       u'type': u'boolean'},
                                     { u'description': u"Valid only for a graded submission. The values are strings that reflect the grading type used. For example, a scoring method of 'points' will show '4' if given a '4' out of '5', and a scoring method of 'letter grade' will show 'B' for the same score (assuming a grading scale where 80-90% is a 'B'). Defaults to 'NULL'.",
                                       u'length': 256,
                                       u'name': u'published_grade',
                                       u'type': u'varchar'},
                                     { u'description': u'Timestamp of when the submission was graded.',
                                       u'name': u'graded_at',
                                       u'type': u'timestamp'},
                                     { u'description': u"Valid only for a graded submission. Its' value is set to 'true' if the submission is associated with a rubric that has been assessed for at least one student, otherwise is set to 'false'. Defaults to 'NULL'.",
                                       u'name': u'has_rubric_assessment',
                                       u'type': u'boolean'},
                                     { u'description': u'The number of attempts made including this one.',
                                       u'name': u'attempt',
                                       u'type': u'int'},
                                     { u'description': u'(Deprecated) No longer used in Canvas.',
                                       u'name': u'has_admin_comment',
                                       u'type': u'boolean'},
                                     { u'description': u'Foreign key to assignment dimension.',
                                       u'name': u'assignment_id',
                                       u'type': u'bigint'},
                                     { u'description': u"Denotes if this submission is excused or not. Possible values are 'excused_submission' and 'regular_submission'.",
                                       u'name': u'excused',
                                       u'type': u'enum'},
                                     { u'description': u"Denotes how the grading has been performed. Possible values are 'graded_anonymously' and 'not_graded_anonymously'.",
                                       u'name': u'graded_anonymously',
                                       u'type': u'enum'},
                                     { u'description': u'Foreign key to the user dimension of user who graded the assignment.',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'user_dim'},
                                       u'name': u'grader_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the group_dim table.',
                                       u'name': u'group_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the quiz_submission_dim table.',
                                       u'name': u'quiz_submission_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the user_dim table.',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'user',
                                                       u'role': u'user'},
                                       u'name': u'user_id',
                                       u'type': u'bigint'},
                                     { u'description': u"Denotes the current state of the grade. Possible values are 'auto_graded', 'human_graded' and 'not_graded'.",
                                       u'name': u'grade_state',
                                       u'type': u'enum'}],
                       u'description': u'This table records the latest submission for an assignment.',
                       u'dw_type': u'dimension',
                       u'hints': { },
                       u'incremental': False,
                       u'tableName': u'submission_dim'},
  u'submission_fact': { u'columns': [ { u'description': u'Foreign key to submission dimension',
                                        u'name': u'submission_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to assignment dimension',
                                        u'name': u'assignment_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to course dimension of course associated with the assignment.',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'course',
                                                        u'role': u'course'},
                                        u'name': u'course_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign Key to enrollment term table',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'enrollment_term',
                                                        u'role': u'enrollment_term'},
                                        u'name': u'enrollment_term_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to user dimension of user who submitted the assignment.',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'user',
                                                        u'role': u'user'},
                                        u'name': u'user_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the user dimension of user who graded the assignment.',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'user_dim'},
                                        u'name': u'grader_id',
                                        u'type': u'bigint'},
                                      { u'description': u"(Deprecated) Foreign key to the account dimension of the account associated with the course associated with the assignment. Please use 'account_id' instead.",
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'account_dim'},
                                        u'name': u'course_account_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the enrollment roll-up dimension table.',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'enrollment_rollup',
                                                        u'role': u'enrollment_rollup'},
                                        u'name': u'enrollment_rollup_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Numeric grade given to the submission.',
                                        u'name': u'score',
                                        u'type': u'double precision'},
                                      { u'description': u"Valid only for a graded submission. It reflects the numerical value of the actual score. Referring to our previous example for 'submission_dim.published_grade', let's take two submissions, one for an assignment with a scoring method of 'points' and the other for an assignment with a scoring method of 'letter grade'. If the published grade is '4' out of '5' and 'B' for them, respectively, then they should both have a score of '4' out of '5'. And their 'published_score' values will be identical, '4.0'. Defaults to 'NULL'.",
                                        u'name': u'published_score',
                                        u'type': u'double precision'},
                                      { u'description': u"Valid only if the student ever entered a 'What If' score for an assignment in the Canvas UI. Only the most recent score entered by the student is stored here. Any time a new score is entered, the existing one is overwritten. Defaults to 'NULL'.",
                                        u'name': u'what_if_score',
                                        u'type': u'double precision'},
                                      { u'description': u"Reflects the total number of comments on the submission by anyone/everyone, excluding comments that are flagged as 'hidden'.",
                                        u'name': u'submission_comments_count',
                                        u'type': u'int'},
                                      { u'description': u'Foreign key to the account the submission belongs to.',
                                        u'dimension': { u'id': u'id',
                                                        u'name': u'account',
                                                        u'role': u'account'},
                                        u'name': u'account_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the assignment group dimension table.',
                                        u'name': u'assignment_group_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the group_dim table.',
                                        u'name': u'group_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the quiz the quiz submission associated with this submission represents.',
                                        u'name': u'quiz_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the quiz_submission_dim table.',
                                        u'name': u'quiz_submission_id',
                                        u'type': u'bigint'},
                                      { u'description': u'Foreign key to the wiki_dim table.',
                                        u'name': u'wiki_id',
                                        u'type': u'bigint'}],
                        u'dw_type': u'fact',
                        u'hints': { },
                        u'incremental': False,
                        u'tableName': u'submission_fact'},
  u'user_dim': { u'columns': [ { u'description': u'Unique surrogate id for the user.',
                                 u'name': u'id',
                                 u'type': u'bigint'},
                               { u'description': u'Primary key for this user in the Canvas users table.',
                                 u'name': u'canvas_id',
                                 u'type': u'bigint'},
                               { u'description': u'Root account associated with this user.',
                                 u'name': u'root_account_id',
                                 u'type': u'bigint'},
                               { u'description': u'Name of the user',
                                 u'length': 256,
                                 u'name': u'name',
                                 u'type': u'varchar'},
                               { u'description': u"User's primary timezone",
                                 u'length': 256,
                                 u'name': u'time_zone',
                                 u'type': u'varchar'},
                               { u'description': u'Timestamp when the user was created in the Canvas system',
                                 u'name': u'created_at',
                                 u'type': u'timestamp'},
                               { u'description': u'(Deprecated) No longer used in Canvas.',
                                 u'length': 256,
                                 u'name': u'visibility',
                                 u'type': u'varchar'},
                               { u'description': u'Used in Trial Versions of Canvas, the school the user is associated with',
                                 u'length': 256,
                                 u'name': u'school_name',
                                 u'type': u'varchar'},
                               { u'description': u'Used in Trial Versions of Canvas, the position the user has at the school. E.g. Admin',
                                 u'length': 256,
                                 u'name': u'school_position',
                                 u'type': u'varchar'},
                               { u'description': u"The user's gender. This is an optional field and may not be entered by the user.",
                                 u'length': 256,
                                 u'name': u'gender',
                                 u'type': u'varchar'},
                               { u'description': u"The user's locale. This is an optional field and may not be entered by the user.",
                                 u'length': 256,
                                 u'name': u'locale',
                                 u'type': u'varchar'},
                               { u'description': u'Used in Trial Versions of Canvas, the type of school the user is associated with',
                                 u'length': 256,
                                 u'name': u'public',
                                 u'type': u'varchar'},
                               { u'description': u"The user's birth date. This is an optional field and may not be entered by the user.",
                                 u'name': u'birthdate',
                                 u'type': u'timestamp'},
                               { u'description': u"The user's country code. This is an optional field and may not be entered by the user.",
                                 u'length': 256,
                                 u'name': u'country_code',
                                 u'type': u'varchar'},
                               { u'description': u'Workflow status indicating the status of the user, valid values are: creation_pending, deleted, pre_registered, registered',
                                 u'length': 256,
                                 u'name': u'workflow_state',
                                 u'type': u'varchar'},
                               { u'description': u'Name of the user that is should be used for sorting groups of users, such as in the gradebook.',
                                 u'length': 256,
                                 u'name': u'sortable_name',
                                 u'type': u'varchar'}],
                 u'description': u'Attributes for users',
                 u'dw_type': u'dimension',
                 u'hints': { },
                 u'incremental': False,
                 u'tableName': u'user_dim'},
  u'wiki_dim': { u'columns': [ { u'description': u'Unique id for the wiki.',
                                 u'name': u'id',
                                 u'type': u'bigint'},
                               { u'description': u'Primary key to the wikis table in canvas.',
                                 u'name': u'canvas_id',
                                 u'type': u'bigint'},
                               { u'description': u'Type of Parent the wiki belongs to. For example, Groups or Courses.',
                                 u'length': 256,
                                 u'name': u'parent_type',
                                 u'type': u'varchar'},
                               { u'description': u'Title for the wiki.',
                                 u'name': u'title',
                                 u'type': u'text'},
                               { u'description': u'Timestamp when the wiki was first saved in the system.',
                                 u'name': u'created_at',
                                 u'type': u'timestamp'},
                               { u'description': u'Timestamp when the wiki was last updated in the system.',
                                 u'name': u'updated_at',
                                 u'type': u'timestamp'},
                               { u'description': u'URL of the front page of the wiki.',
                                 u'name': u'front_page_url',
                                 u'type': u'text'},
                               { u'description': u'True if the wiki does not have a front page or is set to NULL.',
                                 u'name': u'has_no_front_page',
                                 u'type': u'boolean'}],
                 u'description': u'Attributes for wiki in canvas.',
                 u'dw_type': u'dimension',
                 u'hints': { },
                 u'incremental': False,
                 u'tableName': u'wiki_dim'},
  u'wiki_fact': { u'columns': [ { u'description': u'Foreign key to the wiki dimension.',
                                  u'name': u'wiki_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the courses table if the wiki is associated with a Course. Otherwise this field is set to NULL.',
                                  u'name': u'parent_course_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the groups table if the wiki is associated with a Group. Otherwise this field is set to NULL.',
                                  u'name': u'parent_group_id',
                                  u'type': u'bigint'},
                                { u'description': u"Foreign key to the account dimension for the account associated with the wiki's course. If the wiki is not associated to a Course, this field is set to NULL.",
                                  u'name': u'parent_course_account_id',
                                  u'type': u'bigint'},
                                { u'description': u"Foreign key to the account dimension for the account associated with the wiki's group. If the wiki is not associated to a Group, this field is set to NULL.",
                                  u'name': u'parent_group_account_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the accounts table that this wiki belongs to. Helpful for directly finding the account associated with the wiki, irrespective of whether it belongs to a Course or a Group.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'account',
                                                  u'role': u'account'},
                                  u'name': u'account_id',
                                  u'type': u'bigint'},
                                { u'description': u'Root account Id of the account the wiki belongs to. Foreign key to the accounts table.',
                                  u'name': u'root_account_id',
                                  u'type': u'bigint'},
                                { u'description': u'Foreign key to the enrollment term table of the course this wiki is associated with. Otherwise this is set to NULL.',
                                  u'dimension': { u'id': u'id',
                                                  u'name': u'enrollment_term',
                                                  u'role': u'enrollment_term'},
                                  u'name': u'enrollment_term_id',
                                  u'type': u'bigint'},
                                { u'description': u'(Not implemented) Foreign key to the group categories table of the group this wiki is associated with. Otherwise this is set to NULL.',
                                  u'name': u'group_category_id',
                                  u'type': u'bigint'}],
                  u'description': u'Measures for wikis.',
                  u'dw_type': u'fact',
                  u'hints': { },
                  u'incremental': False,
                  u'tableName': u'wiki_fact'},
  u'wiki_page_dim': { u'columns': [ { u'description': u'Unique id for the wiki pages.',
                                      u'name': u'id',
                                      u'type': u'bigint'},
                                    { u'description': u'Primary key for the wiki pages table.',
                                      u'name': u'canvas_id',
                                      u'type': u'bigint'},
                                    { u'description': u'Title of the wiki page.',
                                      u'length': 256,
                                      u'name': u'title',
                                      u'type': u'varchar'},
                                    { u'description': u'Body of the wiki page. Redshift will only load the first 256 bytes of the body.',
                                      u'name': u'body',
                                      u'type': u'text'},
                                    { u'description': u'Current state the wiki is in. For Example, active, unpublished, deleted.',
                                      u'length': 256,
                                      u'name': u'workflow_state',
                                      u'type': u'varchar'},
                                    { u'description': u'Timestamp when the wiki page was created in the system.',
                                      u'name': u'created_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'Timestamp when the wiki page was last updated in the system.',
                                      u'name': u'updated_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'URL for the wiki page.',
                                      u'name': u'url',
                                      u'type': u'text'},
                                    { u'description': u'Editing protection for the wiki page. It is false by default.',
                                      u'name': u'protected_editing',
                                      u'type': u'boolean'},
                                    { u'description': u'Users or roles who can edit a wiki page.',
                                      u'length': 256,
                                      u'name': u'editing_roles',
                                      u'type': u'varchar'},
                                    { u'description': u'Timestamp the wiki page was last revised in the system.',
                                      u'name': u'revised_at',
                                      u'type': u'timestamp'},
                                    { u'description': u'True if the wiki page can be locked. This prevents it from being visible to others until ready.',
                                      u'name': u'could_be_locked',
                                      u'type': u'boolean'}],
                      u'description': u'Attributes for wiki pages in canvas.',
                      u'dw_type': u'dimension',
                      u'hints': { },
                      u'incremental': False,
                      u'tableName': u'wiki_page_dim'},
  u'wiki_page_fact': { u'columns': [ { u'description': u'Foreign key to the wiki pages dimension.',
                                       u'name': u'wiki_page_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the wikis dimension.',
                                       u'name': u'wiki_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the courses table if the wiki that owns the wiki page is associated with a Course. Otherwise this field is set to NULL.',
                                       u'name': u'parent_course_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the groups table if the wiki that owns the wiki page is associated with a Group. Otherwise this field is set to NULL.',
                                       u'name': u'parent_group_id',
                                       u'type': u'bigint'},
                                     { u'description': u"Foreign key to the account dimension for the account associated with the wiki page's course. If the wiki page is not associated to a Course, this field is set to NULL.",
                                       u'name': u'parent_course_account_id',
                                       u'type': u'bigint'},
                                     { u'description': u"Foreign key to the account dimension for the account associated with the wiki page's group. If the wiki page is not associated to a Group, this field is set to NULL.",
                                       u'name': u'parent_group_account_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the user table.',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'user',
                                                       u'role': u'user'},
                                       u'name': u'user_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the accounts table that this wiki page belongs to. Helpful for directly finding the account associated with the wiki page, irrespective of whether it belongs to a Course or a Group.',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'account',
                                                       u'role': u'account'},
                                       u'name': u'account_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Root account Id of the account the wiki belongs to. Foreign key to the accounts table.',
                                       u'name': u'root_account_id',
                                       u'type': u'bigint'},
                                     { u'description': u'Foreign key to the enrollment term table of the course this wiki page is associated with. Otherwise this is set to NULL.',
                                       u'dimension': { u'id': u'id',
                                                       u'name': u'enrollment_term',
                                                       u'role': u'enrollment_term'},
                                       u'name': u'enrollment_term_id',
                                       u'type': u'bigint'},
                                     { u'description': u'(Not implemented) Foreign key to the group categories table of the group this wiki page is associated with. Otherwise this is set to NULL.',
                                       u'name': u'group_category_id',
                                       u'type': u'bigint'},
                                     { u'description': u'(Deprecated) No longer used in Canvas.',
                                       u'name': u'wiki_page_comments_count',
                                       u'type': u'int'},
                                     { u'description': u'Number of views per wiki page.',
                                       u'name': u'view_count',
                                       u'type': u'int'}],
                       u'description': u'Measures for wiki pages.',
                       u'dw_type': u'fact',
                       u'hints': { },
                       u'incremental': False,
                       u'tableName': u'wiki_page_fact'}}
