From 5cb108888d91416a8b22eace50f2afa6a1abfe04 Mon Sep 17 00:00:00 2001 From: Jason Sylvestre Date: Thu, 20 Aug 2026 15:42:28 -0700 Subject: [PATCH] Update Rosetta API spec to v1.0.34 Regenerate client to reflect Rosetta API specification v1.0.34. This update introduces: - The `job_indicator` property for `EmployeeAssociation` and `PpsAssociationRecord` types. - `firstnamelike` and `lastnamelike` filters for `PeopleFilterInput`. --- README.md | 2 +- .../Generated/RosettaApiClient.g.cs | 44 +++++++++++++++++++ specs/rosetta-api.graphql | 6 +++ specs/rosetta-api.json | 42 +++++++++++++++++- update-spec.sh | 2 +- 5 files changed, 93 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9f8eed8..a5cd60f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # UCD.Rosetta.Client -![Rosetta API Spec](https://img.shields.io/badge/Rosetta%20API%20Spec-v1.0.33-blue) +![Rosetta API Spec](https://img.shields.io/badge/Rosetta%20API%20Spec-v1.0.34-blue) Official .NET client library for the UC Davis IAM Rosetta API. Provides easy access to identity and access management data from UC Davis IAM services. diff --git a/UCD.Rosetta.Client/Generated/RosettaApiClient.g.cs b/UCD.Rosetta.Client/Generated/RosettaApiClient.g.cs index d57d492..43e78ba 100644 --- a/UCD.Rosetta.Client/Generated/RosettaApiClient.g.cs +++ b/UCD.Rosetta.Client/Generated/RosettaApiClient.g.cs @@ -6574,6 +6574,13 @@ public partial class EmployeeAssociation [System.Text.Json.Serialization.JsonPropertyName("position_title")] public string? Position_title { get; set; } = default!; + /// + /// Job indicator. Values are N (Not Applicable), S (Secondary Job), P (Primary Job). + /// + [System.Text.Json.Serialization.JsonPropertyName("job_indicator")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public EmployeeAssociationJob_indicator? Job_indicator { get; set; } = default!; + [System.Text.Json.Serialization.JsonPropertyName("relationship_to_organization")] public string? Relationship_to_organization { get; set; } = default!; @@ -8009,6 +8016,13 @@ public partial class Employee_association [System.Text.Json.Serialization.JsonPropertyName("position_title")] public string? Position_title { get; set; } = default!; + /// + /// Job indicator. Values are N (Not Applicable), S (Secondary Job), P (Primary Job). + /// + [System.Text.Json.Serialization.JsonPropertyName("job_indicator")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Serialization.JsonStringEnumConverter))] + public Employee_associationJob_indicator? Job_indicator { get; set; } = default!; + [System.Text.Json.Serialization.JsonPropertyName("relationship_to_organization")] public string? Relationship_to_organization { get; set; } = default!; @@ -8101,6 +8115,21 @@ public partial class Employee_association } + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.6.2.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))")] + public enum EmployeeAssociationJob_indicator + { + + [System.Runtime.Serialization.EnumMember(Value = @"N")] + N = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"S")] + S = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"P")] + P = 2, + + } + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.6.2.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))")] public partial class Divisions { @@ -8215,6 +8244,21 @@ public partial class Mail_id } + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.6.2.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))")] + public enum Employee_associationJob_indicator + { + + [System.Runtime.Serialization.EnumMember(Value = @"N")] + N = 0, + + [System.Runtime.Serialization.EnumMember(Value = @"S")] + S = 1, + + [System.Runtime.Serialization.EnumMember(Value = @"P")] + P = 2, + + } + [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.6.2.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0))")] public partial class Subdivisions2 { diff --git a/specs/rosetta-api.graphql b/specs/rosetta-api.graphql index de3f2cc..00ec559 100644 --- a/specs/rosetta-api.graphql +++ b/specs/rosetta-api.graphql @@ -178,6 +178,8 @@ type EmployeeAssociation { employee_id: String position_number: String position_title: String + "Values: N (Not Applicable), S (Secondary Job), P (Primary Job)." + job_indicator: String relationship_to_organization: String employee_classification: String employee_classification_description: String @@ -238,6 +240,8 @@ type PpsAssociationRecord { employee_record: String position_number: String position_title: String + "Values: N (Not Applicable), S (Secondary Job), P (Primary Job)." + job_indicator: String relationship_to_organization: String employee_classification: String employee_classification_description: String @@ -461,6 +465,8 @@ input PeopleFilterInput { iamid: String firstname: String lastname: String + firstnamelike: String + lastnamelike: String manager_iam_id: String iamids: [String] email: String diff --git a/specs/rosetta-api.json b/specs/rosetta-api.json index 244de92..cf76310 100644 --- a/specs/rosetta-api.json +++ b/specs/rosetta-api.json @@ -12,7 +12,7 @@ ], "externalDocs": { "url": "http://", - "description": "```\n###TYPES###\n\n##Groups##\ntype GroupBucket {\n sourceName: String\n sourceId: String\n groups: [String]\n}\n\ntype GroupSource {\n sourceName: String\n sourceId: String\n}\n\ntype GroupMembership {\n name: String\n iamid: String\n loginId: String\n employeeId: String\n email: String\n groups: [GroupBucket]\n}\n\ntype GroupMember {\n name: String\n iamid: String\n email: String\n}\n\ntype GroupById {\n groupName: String\n groupSource: String\n groupId: String\n groupMembers: [GroupMember]\n}\n\n##Roles##\ntype Role {\n roleName: String\n roleId: String\n description: String\n enabled: Boolean\n requestable: Boolean\n}\n\ntype RoleMembership {\n name: String\n iamid: String\n loginId: String\n employeeId: String\n email: String\n roles: [Role]\n}\n\ntype RoleById {\n roleName: String\n roleId: String\n description: String\n enabled: Boolean\n requestable: Boolean\n roleMembers: [GroupMember]\n}\n\n##People##\ntype ProvisioningStatus {\n primary: String\n primary_override: String\n cosmos_affiliate: String\n cpe_affiliate: String\n employee: String\n faculty: String\n health_affiliate: String\n student: String\n student_applicant: String\n temporary_affiliate: String\n ucanr_affiliate: String\n usda_whnrc_affiliate: String\n}\n\ntype EmploymentStatus {\n is_without_salary: String\n is_academic: String\n is_academic_senate: String\n is_academic_federation: String\n is_faculty: String\n is_ladder_rank: String\n is_manager: String\n is_teaching_faculty: String\n is_msp: String\n is_ssp: String\n is_supervisor: String\n is_msp_career: String\n is_msp_career_partial_year: String\n is_msp_contract: String\n is_msp_casual: String\n is_msp_senior_management: String\n is_ssp_career: String\n is_ssp_career_partial_year: String\n is_ssp_contract: String\n is_ssp_casual: String\n is_ssp_casual_restricted: String\n is_ssp_per_diem: String\n is_ssp_floater: String\n is_health_employee: String\n is_campus_employee: String\n}\n\ntype Affiliation {\n employee: String\n faculty: String\n student: String\n student_applicant: String\n health_affiliate: String\n temporary_affiliate: String\n cosmos_affiliate: String\n cpe_affiliate: String\n ucanr_affiliate: String\n usda_whnrc_affiliate: String\n}\n\ntype NameRecord {\n lived_first_name: String\n lived_middle_name: String\n lived_last_name: String\n lived_pronouns: String\n legal_first_name: String\n legal_middle_name: String\n legal_last_name: String\n}\n\ntype MailId {\n campus: String\n health: String\n}\n\ntype IdentityIds {\n iam_id: String\n login_id: String\n student_id: String\n mothra_id: String\n employee_id: String\n mail_id: MailId\n pidm: String\n pps_id: String\n cosmos_id: String\n cpe_id: String\n health_affiliate_id: String\n ucanr_id: String\n usda_whnrc_id: String\n affiliate_id: String\n ucnet_id: String\n}\n\ntype EmailAddresses {\n campus: String\n health: String\n personal: String\n}\n\ntype PhoneNumbers {\n primary: String\n work: String\n personal: String\n}\n\ntype StudentAssociation {\n college_code: String\n college_title: String\n major_code: String\n major_title: String\n academic_level: String\n class_level: String\n}\n\ntype EmployeeAssociation {\n iam_id: String\n employee_record: String\n employee_id: String\n position_number: String\n position_title: String\n relationship_to_organization: String\n employee_classification: String\n employee_classification_description: String\n status: String\n hire_date: String\n start_date: String\n termination_date: String\n fte_percentage: String\n job_type_id: String\n job_type_description: String\n job_family_id: String\n job_family_description: String\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4_id: String\n subdivision_l4_title: String\n business_unit_id: String\n business_unit_title: String\n department_id: String\n department_title: String\n department_short_title: String\n reports_to_position: String\n reports_to_iam_id: String\n reports_to_employee_id: String\n is_health_position: String\n is_campus_position: String\n}\n\ntype Person {\n iam_id: ID\n displayname: String\n birth_date: String\n manager_iam_id: String\n provisioning_status: [ProvisioningStatus]\n affiliation: Affiliation\n employment_status: EmploymentStatus\n name: [NameRecord]\n id: [IdentityIds]\n email: [EmailAddresses]\n phone: [PhoneNumbers]\n student_association: [StudentAssociation]\n employee_association: [EmployeeAssociation]\n modified_date: String\n create_date: String\n}\n\n##Position Association##\n\ntype PpsAssociationRecord {\n iam_id: String\n reports_to_iam_id: String\n reports_to_employee_id: String\n employee_id: String\n employee_record: String\n position_number: String\n position_title: String\n relationship_to_organization: String\n employee_classification: String\n employee_classification_description: String\n status: String\n hire_date: String\n start_date: String\n termination_date: String\n fte_percentage: String\n reports_to_position: String\n job_type_id: String\n job_type_description: String\n job_family_id: String\n job_family_description: String\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n business_unit_id: String\n business_unit_title: String\n department_id: String\n department_title: String\n department_short_title: String\n is_health_position: String\n is_campus_position: String\n modified_date: String\n create_date: String\n}\n\n##Student Association##\ntype SisAssociationRecord {\n iam_id: String\n pidm: String\n student_id: String\n college_code: String\n college_title: String\n major_code: String\n major_title: String\n lvl_affiliation_code: String\n cls_affiliation_code: String\n rank: String\n modified_date: String\n create_date: String\n}\n\n##College Info##\ntype College {\n college_code: String\n college_title: String\n}\n\n##Major Info##\ntype Major {\n major_code: String\n major_title: String\n major_status: String\n}\n\ntype JobTypeId {\n job_type_id: String\n job_type_description: String\n}\n\n##Organizations##\ntype OrganizationDepartmentNode {\n department_id: String\n department_title: String\n department_short_title: String\n}\n\ntype OrganizationSubdivisionL4Node {\n subdivision_l4_id: String\n subdivision_l4_title: String\n departments: [OrganizationDepartmentNode]\n}\n\ntype OrganizationSubdivisionNode {\n subdivision_id: String\n subdivision_title: String\n subdivision_l4s: [OrganizationSubdivisionL4Node]\n}\n\ntype OrganizationDivisionNode {\n division_id: String\n division_title: String\n subdivisions: [OrganizationSubdivisionNode]\n}\n\ntype OrganizationNode {\n organization_id: String\n organization_title: String\n divisions: [OrganizationDivisionNode]\n}\n\ntype OrganizationDivisionDetail {\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivisions: [OrganizationSubdivisionNode]\n}\n\ntype OrganizationSubdivisionDetail {\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4s: [OrganizationSubdivisionL4Node]\n}\n\ntype OrganizationSubdivisionL4Detail {\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4_id: String\n subdivision_l4_title: String\n departments: [OrganizationDepartmentNode]\n}\n\ntype OrganizationDepartmentDetail {\n department_id: String\n department_title: String\n department_short_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4_id: String\n subdivision_l4_title: String\n division_id: String\n division_title: String\n organization_id: String\n organization_title: String\n}\n\n##Accounts##\ntype AccountSourceCount {\n sourceId: String\n sourceName: String\n accountCount: Int\n}\n\ntype AccountSource {\n sourceId: String\n sourceName: String\n}\n\ntype AccountSummary {\n sourceName: String\n accountId: String\n isAdmin: String\n objectPath: String\n objectType: String\n lastLoginTime: String\n created: String\n modified: String\n}\n\ntype AccountLookupIdentity {\n identityId: String\n name: String\n iamid: String\n loginId: String\n email: String\n accounts: [AccountSummary]\n}\n\n##Meta Info##\ntype Meta {\n x_total_count: Int\n x_response_count: Int\n}\n\nenum AcademicLevel {\n GR\n LW\n MD\n ND\n U2\n UG\n UL\n VM\n graduate\n undergrad\n}\n\nenum ClassLevel {\n D1\n D2\n FR\n GM\n JR\n L1\n L2\n L3\n LM\n M1\n M2\n M3\n M4\n ND\n PB\n SO\n SR\n U2\n UL\n V1\n V2\n V3\n V4\n VALUE_00\n}\n\n###INPUTS###\n###Query parameter / filters for queries###\ninput PeopleFilterInput {\n iamid: String\n firstname: String\n lastname: String\n manager_iam_id: String\n iamids: [String]\n email: String\n emails: [String]\n loginid: String\n employeeid: String\n studentid: String\n mailid: String\n pidm: String\n mothraid: String\n pps_id: String\n cosmos_id: String\n cpe_id: String\n health_affiliate_id: String\n ucanr_id: String\n usda_whnrc_id: String\n affiliate_id: String\n ucnet_id: String\n affiliationContains: String\n affiliationNotContains: String\n affiliationState: String = \"withAffiliation\"\n department: String\n collegecode: String\n majorcode: String\n academic_level: AcademicLevel\n class_level: ClassLevel\n organizationid: String\n divisionid: String\n subdivisionid: String\n subdivisionl4id: String\n employmentStatus: String\n count: Boolean = false\n modifiedsince: String\n limit: Int = 10000\n offset: Int = 0\n}\n\ninput CollegesFilterInput {\n college_code: String\n college_title: String\n}\n\ninput MajorsFilterInput {\n major_code: String\n major_title: String\n major_status: String\n}\n\ninput GroupsFilterInput {\n source: String\n limit: Int = 10000\n}\n\ninput GroupMembershipFilterInput {\n iamid: String\n iamids: [String]\n email: String\n loginid: String\n employeeid: String\n source: String\n limit: Int = 10000\n}\n\ninput GroupsByIdFilterInput {\n id: String!\n limit: Int = 10000\n}\n\ninput RolesFilterInput {\n limit: Int = 10000\n}\n\ninput RoleMembershipFilterInput {\n iamid: String\n iamids: [String]\n email: String\n loginid: String\n employeeid: String\n limit: Int = 10000\n}\n\ninput RolesByIdFilterInput {\n id: String!\n limit: Int = 10000\n}\n\ninput EmployeeAssociationFilterInput {\n iamid: String\n iamids: [String]\n loginid: String\n employeeid: String\n jobtypeid: String\n organizationid: String\n departmentid: String\n divisionid: String\n subdivisionid: String\n subdivisionl4id: String\n count: Boolean = false\n modifiedsince: String\n offset: Int = 0\n limit: Int = 1000\n}\n\n input EmployeeAssociationJobTypeIdsFilterInput {\n job_type_id: String\n jobtypeid: String\n }\n\n input StudentAssociationFilterInput {\n iamid: String\n iamids: [String]\n pidm: String\n studentid: String\n majorcode: String\n collegecode: String\n count: Boolean = false\n modifiedsince: String\n offset: Int = 0\n limit: Int = 1000\n}\n\ninput OrganizationHierarchyFilterInput {\n departmentid: String\n subdivisionid: String\n subdivisionl4id: String\n organizationid: String\n divisionid: String\n limit: Int = 10000\n}\n\ninput OrganizationByIdFilterInput {\n id: String!\n departmentid: String\n subdivisionid: String\n subdivisionl4id: String\n organizationid: String\n divisionid: String\n limit: Int = 10000\n}\n\ninput AccountLookupFilterInput {\n iamid: String\n iamids: [String]\n email: String\n loginid: String\n}\n\n##Results##\ntype PeopleResult {\n results: [Person]\n meta: Meta\n}\n\ntype EmployeeAssociationResult {\n results: [PpsAssociationRecord]\n meta: Meta\n}\n\ntype StudentAssociationResult {\n results: [SisAssociationRecord]\n meta: Meta\n}\n\ntype MajorsResult {\n results: [Major]\n}\n\ntype JobTypeIdsResult {\n results: [JobTypeId]\n}\n\ntype CollegeResult {\n results: [College]\n}\n\ntype GroupsResult {\n results: [GroupBucket]\n}\n\ntype GroupSourceResults {\n results: [GroupSource]\n}\n\ntype GroupMembershipResult {\n results: [GroupMembership]\n}\n\ntype GroupByIdResult {\n results: GroupById\n}\n\ntype RolesResult {\n results: [Role]\n}\n\ntype RoleMembershipResult {\n results: [RoleMembership]\n}\n\ntype RoleByIdResult {\n results: RoleById\n}\n\ntype OrganizationsResult {\n results: [OrganizationNode]\n}\n\ntype OrganizationByIdResult {\n results: OrganizationNode\n}\n\ntype OrganizationDivisionByIdResult {\n results: OrganizationDivisionDetail\n}\n\ntype OrganizationSubdivisionByIdResult {\n results: OrganizationSubdivisionDetail\n}\n\ntype OrganizationSubdivisionL4ByIdResult {\n results: OrganizationSubdivisionL4Detail\n}\n\ntype OrganizationDepartmentByIdResult {\n results: OrganizationDepartmentDetail\n}\n\ntype AccountSourceCountsResult {\n results: [AccountSourceCount]\n}\n\ntype AccountSourcesResult {\n results: [AccountSource]\n}\n\ntype AccountLookupResult {\n results: [AccountLookupIdentity]\n}\n\n##Query types##\ntype Query {\n #Colleges\n colleges(filter: CollegesFilterInput): CollegeResult\n\n #Majors\n majors(filter: MajorsFilterInput): MajorsResult\n \n #People\n people(filter: PeopleFilterInput): PeopleResult\n people_students(filter: PeopleFilterInput): PeopleResult\n people_employees(filter: PeopleFilterInput): PeopleResult\n people_faculty(filter: PeopleFilterInput): PeopleResult\n people_external(filter: PeopleFilterInput): PeopleResult\n \n #Groups\n groups(filter: GroupsFilterInput): GroupsResult\n groupSources: GroupSourceResults\n groupMembership(filter: GroupMembershipFilterInput): GroupMembershipResult\n groupById(filter: GroupsByIdFilterInput): GroupByIdResult\n\n #Roles\n roles(filter: RolesFilterInput): RolesResult\n roleMembership(filter: RoleMembershipFilterInput): RoleMembershipResult\n roleById(filter: RolesByIdFilterInput): RoleByIdResult\n\n #Position Association\n employee_association(filter: EmployeeAssociationFilterInput): EmployeeAssociationResult\n employee_association_jobtypeids(filter: EmployeeAssociationJobTypeIdsFilterInput): JobTypeIdsResult\n\n #Organizations\n organizations(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationById(filter: OrganizationByIdFilterInput): OrganizationByIdResult\n organizationDivisions(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationDivisionById(filter: OrganizationByIdFilterInput): OrganizationDivisionByIdResult\n organizationSubdivisions(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationSubdivisionById(filter: OrganizationByIdFilterInput): OrganizationSubdivisionByIdResult\n organizationSubdivisionL4s(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationSubdivisionL4ById(filter: OrganizationByIdFilterInput): OrganizationSubdivisionL4ByIdResult\n organizationDepartments(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationDepartmentById(filter: OrganizationByIdFilterInput): OrganizationDepartmentByIdResult\n\n #Accounts\n accounts: AccountSourceCountsResult\n accountLookup(filter: AccountLookupFilterInput): AccountLookupResult\n accountSources: AccountSourcesResult\n\n #Student Association\n student_association(filter: StudentAssociationFilterInput): StudentAssociationResult\n}\n```", + "description": "```\n###TYPES###\n\n##Groups##\ntype GroupBucket {\n sourceName: String\n sourceId: String\n groups: [String]\n}\n\ntype GroupSource {\n sourceName: String\n sourceId: String\n}\n\ntype GroupMembership {\n name: String\n iamid: String\n loginId: String\n employeeId: String\n email: String\n groups: [GroupBucket]\n}\n\ntype GroupMember {\n name: String\n iamid: String\n email: String\n}\n\ntype GroupById {\n groupName: String\n groupSource: String\n groupId: String\n groupMembers: [GroupMember]\n}\n\n##Roles##\ntype Role {\n roleName: String\n roleId: String\n description: String\n enabled: Boolean\n requestable: Boolean\n}\n\ntype RoleMembership {\n name: String\n iamid: String\n loginId: String\n employeeId: String\n email: String\n roles: [Role]\n}\n\ntype RoleById {\n roleName: String\n roleId: String\n description: String\n enabled: Boolean\n requestable: Boolean\n roleMembers: [GroupMember]\n}\n\n##People##\ntype ProvisioningStatus {\n primary: String\n primary_override: String\n cosmos_affiliate: String\n cpe_affiliate: String\n employee: String\n faculty: String\n health_affiliate: String\n student: String\n student_applicant: String\n temporary_affiliate: String\n ucanr_affiliate: String\n usda_whnrc_affiliate: String\n}\n\ntype EmploymentStatus {\n is_without_salary: String\n is_academic: String\n is_academic_senate: String\n is_academic_federation: String\n is_faculty: String\n is_ladder_rank: String\n is_manager: String\n is_teaching_faculty: String\n is_msp: String\n is_ssp: String\n is_supervisor: String\n is_msp_career: String\n is_msp_career_partial_year: String\n is_msp_contract: String\n is_msp_casual: String\n is_msp_senior_management: String\n is_ssp_career: String\n is_ssp_career_partial_year: String\n is_ssp_contract: String\n is_ssp_casual: String\n is_ssp_casual_restricted: String\n is_ssp_per_diem: String\n is_ssp_floater: String\n is_health_employee: String\n is_campus_employee: String\n}\n\ntype Affiliation {\n employee: String\n faculty: String\n student: String\n student_applicant: String\n health_affiliate: String\n temporary_affiliate: String\n cosmos_affiliate: String\n cpe_affiliate: String\n ucanr_affiliate: String\n usda_whnrc_affiliate: String\n}\n\ntype NameRecord {\n lived_first_name: String\n lived_middle_name: String\n lived_last_name: String\n lived_pronouns: String\n legal_first_name: String\n legal_middle_name: String\n legal_last_name: String\n}\n\ntype MailId {\n campus: String\n health: String\n}\n\ntype IdentityIds {\n iam_id: String\n login_id: String\n student_id: String\n mothra_id: String\n employee_id: String\n mail_id: MailId\n pidm: String\n pps_id: String\n cosmos_id: String\n cpe_id: String\n health_affiliate_id: String\n ucanr_id: String\n usda_whnrc_id: String\n affiliate_id: String\n ucnet_id: String\n}\n\ntype EmailAddresses {\n campus: String\n health: String\n personal: String\n}\n\ntype PhoneNumbers {\n primary: String\n work: String\n personal: String\n}\n\ntype StudentAssociation {\n college_code: String\n college_title: String\n major_code: String\n major_title: String\n academic_level: String\n class_level: String\n}\n\ntype EmployeeAssociation {\n iam_id: String\n employee_record: String\n employee_id: String\n position_number: String\n position_title: String\n \"Values: N (Not Applicable), S (Secondary Job), P (Primary Job).\"\n job_indicator: String\n relationship_to_organization: String\n employee_classification: String\n employee_classification_description: String\n status: String\n hire_date: String\n start_date: String\n termination_date: String\n fte_percentage: String\n job_type_id: String\n job_type_description: String\n job_family_id: String\n job_family_description: String\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4_id: String\n subdivision_l4_title: String\n business_unit_id: String\n business_unit_title: String\n department_id: String\n department_title: String\n department_short_title: String\n reports_to_position: String\n reports_to_iam_id: String\n reports_to_employee_id: String\n is_health_position: String\n is_campus_position: String\n}\n\ntype Person {\n iam_id: ID\n displayname: String\n birth_date: String\n manager_iam_id: String\n provisioning_status: [ProvisioningStatus]\n affiliation: Affiliation\n employment_status: EmploymentStatus\n name: [NameRecord]\n id: [IdentityIds]\n email: [EmailAddresses]\n phone: [PhoneNumbers]\n student_association: [StudentAssociation]\n employee_association: [EmployeeAssociation]\n modified_date: String\n create_date: String\n}\n\n##Position Association##\n\ntype PpsAssociationRecord {\n iam_id: String\n reports_to_iam_id: String\n reports_to_employee_id: String\n employee_id: String\n employee_record: String\n position_number: String\n position_title: String\n \"Values: N (Not Applicable), S (Secondary Job), P (Primary Job).\"\n job_indicator: String\n relationship_to_organization: String\n employee_classification: String\n employee_classification_description: String\n status: String\n hire_date: String\n start_date: String\n termination_date: String\n fte_percentage: String\n reports_to_position: String\n job_type_id: String\n job_type_description: String\n job_family_id: String\n job_family_description: String\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n business_unit_id: String\n business_unit_title: String\n department_id: String\n department_title: String\n department_short_title: String\n is_health_position: String\n is_campus_position: String\n modified_date: String\n create_date: String\n}\n\n##Student Association##\ntype SisAssociationRecord {\n iam_id: String\n pidm: String\n student_id: String\n college_code: String\n college_title: String\n major_code: String\n major_title: String\n lvl_affiliation_code: String\n cls_affiliation_code: String\n rank: String\n modified_date: String\n create_date: String\n}\n\n##College Info##\ntype College {\n college_code: String\n college_title: String\n}\n\n##Major Info##\ntype Major {\n major_code: String\n major_title: String\n major_status: String\n}\n\ntype JobTypeId {\n job_type_id: String\n job_type_description: String\n}\n\n##Organizations##\ntype OrganizationDepartmentNode {\n department_id: String\n department_title: String\n department_short_title: String\n}\n\ntype OrganizationSubdivisionL4Node {\n subdivision_l4_id: String\n subdivision_l4_title: String\n departments: [OrganizationDepartmentNode]\n}\n\ntype OrganizationSubdivisionNode {\n subdivision_id: String\n subdivision_title: String\n subdivision_l4s: [OrganizationSubdivisionL4Node]\n}\n\ntype OrganizationDivisionNode {\n division_id: String\n division_title: String\n subdivisions: [OrganizationSubdivisionNode]\n}\n\ntype OrganizationNode {\n organization_id: String\n organization_title: String\n divisions: [OrganizationDivisionNode]\n}\n\ntype OrganizationDivisionDetail {\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivisions: [OrganizationSubdivisionNode]\n}\n\ntype OrganizationSubdivisionDetail {\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4s: [OrganizationSubdivisionL4Node]\n}\n\ntype OrganizationSubdivisionL4Detail {\n organization_id: String\n organization_title: String\n division_id: String\n division_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4_id: String\n subdivision_l4_title: String\n departments: [OrganizationDepartmentNode]\n}\n\ntype OrganizationDepartmentDetail {\n department_id: String\n department_title: String\n department_short_title: String\n subdivision_id: String\n subdivision_title: String\n subdivision_l4_id: String\n subdivision_l4_title: String\n division_id: String\n division_title: String\n organization_id: String\n organization_title: String\n}\n\n##Accounts##\ntype AccountSourceCount {\n sourceId: String\n sourceName: String\n accountCount: Int\n}\n\ntype AccountSource {\n sourceId: String\n sourceName: String\n}\n\ntype AccountSummary {\n sourceName: String\n accountId: String\n isAdmin: String\n objectPath: String\n objectType: String\n lastLoginTime: String\n created: String\n modified: String\n}\n\ntype AccountLookupIdentity {\n identityId: String\n name: String\n iamid: String\n loginId: String\n email: String\n accounts: [AccountSummary]\n}\n\n##Meta Info##\ntype Meta {\n x_total_count: Int\n x_response_count: Int\n}\n\nenum AcademicLevel {\n GR\n LW\n MD\n ND\n U2\n UG\n UL\n VM\n graduate\n undergrad\n}\n\nenum ClassLevel {\n D1\n D2\n FR\n GM\n JR\n L1\n L2\n L3\n LM\n M1\n M2\n M3\n M4\n ND\n PB\n SO\n SR\n U2\n UL\n V1\n V2\n V3\n V4\n VALUE_00\n}\n\n###INPUTS###\n###Query parameter / filters for queries###\ninput PeopleFilterInput {\n iamid: String\n firstname: String\n lastname: String\n firstnamelike: String\n lastnamelike: String\n manager_iam_id: String\n iamids: [String]\n email: String\n emails: [String]\n loginid: String\n employeeid: String\n studentid: String\n mailid: String\n pidm: String\n mothraid: String\n pps_id: String\n cosmos_id: String\n cpe_id: String\n health_affiliate_id: String\n ucanr_id: String\n usda_whnrc_id: String\n affiliate_id: String\n ucnet_id: String\n affiliationContains: String\n affiliationNotContains: String\n affiliationState: String = \"withAffiliation\"\n department: String\n collegecode: String\n majorcode: String\n academic_level: AcademicLevel\n class_level: ClassLevel\n organizationid: String\n divisionid: String\n subdivisionid: String\n subdivisionl4id: String\n employmentStatus: String\n count: Boolean = false\n modifiedsince: String\n limit: Int = 10000\n offset: Int = 0\n}\n\ninput CollegesFilterInput {\n college_code: String\n college_title: String\n}\n\ninput MajorsFilterInput {\n major_code: String\n major_title: String\n major_status: String\n}\n\ninput GroupsFilterInput {\n source: String\n limit: Int = 10000\n}\n\ninput GroupMembershipFilterInput {\n iamid: String\n iamids: [String]\n email: String\n loginid: String\n employeeid: String\n source: String\n limit: Int = 10000\n}\n\ninput GroupsByIdFilterInput {\n id: String!\n limit: Int = 10000\n}\n\ninput RolesFilterInput {\n limit: Int = 10000\n}\n\ninput RoleMembershipFilterInput {\n iamid: String\n iamids: [String]\n email: String\n loginid: String\n employeeid: String\n limit: Int = 10000\n}\n\ninput RolesByIdFilterInput {\n id: String!\n limit: Int = 10000\n}\n\ninput EmployeeAssociationFilterInput {\n iamid: String\n iamids: [String]\n loginid: String\n employeeid: String\n jobtypeid: String\n organizationid: String\n departmentid: String\n divisionid: String\n subdivisionid: String\n subdivisionl4id: String\n count: Boolean = false\n modifiedsince: String\n offset: Int = 0\n limit: Int = 1000\n}\n\n input EmployeeAssociationJobTypeIdsFilterInput {\n job_type_id: String\n jobtypeid: String\n }\n\n input StudentAssociationFilterInput {\n iamid: String\n iamids: [String]\n pidm: String\n studentid: String\n majorcode: String\n collegecode: String\n count: Boolean = false\n modifiedsince: String\n offset: Int = 0\n limit: Int = 1000\n}\n\ninput OrganizationHierarchyFilterInput {\n departmentid: String\n subdivisionid: String\n subdivisionl4id: String\n organizationid: String\n divisionid: String\n limit: Int = 10000\n}\n\ninput OrganizationByIdFilterInput {\n id: String!\n departmentid: String\n subdivisionid: String\n subdivisionl4id: String\n organizationid: String\n divisionid: String\n limit: Int = 10000\n}\n\ninput AccountLookupFilterInput {\n iamid: String\n iamids: [String]\n email: String\n loginid: String\n}\n\n##Results##\ntype PeopleResult {\n results: [Person]\n meta: Meta\n}\n\ntype EmployeeAssociationResult {\n results: [PpsAssociationRecord]\n meta: Meta\n}\n\ntype StudentAssociationResult {\n results: [SisAssociationRecord]\n meta: Meta\n}\n\ntype MajorsResult {\n results: [Major]\n}\n\ntype JobTypeIdsResult {\n results: [JobTypeId]\n}\n\ntype CollegeResult {\n results: [College]\n}\n\ntype GroupsResult {\n results: [GroupBucket]\n}\n\ntype GroupSourceResults {\n results: [GroupSource]\n}\n\ntype GroupMembershipResult {\n results: [GroupMembership]\n}\n\ntype GroupByIdResult {\n results: GroupById\n}\n\ntype RolesResult {\n results: [Role]\n}\n\ntype RoleMembershipResult {\n results: [RoleMembership]\n}\n\ntype RoleByIdResult {\n results: RoleById\n}\n\ntype OrganizationsResult {\n results: [OrganizationNode]\n}\n\ntype OrganizationByIdResult {\n results: OrganizationNode\n}\n\ntype OrganizationDivisionByIdResult {\n results: OrganizationDivisionDetail\n}\n\ntype OrganizationSubdivisionByIdResult {\n results: OrganizationSubdivisionDetail\n}\n\ntype OrganizationSubdivisionL4ByIdResult {\n results: OrganizationSubdivisionL4Detail\n}\n\ntype OrganizationDepartmentByIdResult {\n results: OrganizationDepartmentDetail\n}\n\ntype AccountSourceCountsResult {\n results: [AccountSourceCount]\n}\n\ntype AccountSourcesResult {\n results: [AccountSource]\n}\n\ntype AccountLookupResult {\n results: [AccountLookupIdentity]\n}\n\n##Query types##\ntype Query {\n #Colleges\n colleges(filter: CollegesFilterInput): CollegeResult\n\n #Majors\n majors(filter: MajorsFilterInput): MajorsResult\n \n #People\n people(filter: PeopleFilterInput): PeopleResult\n people_students(filter: PeopleFilterInput): PeopleResult\n people_employees(filter: PeopleFilterInput): PeopleResult\n people_faculty(filter: PeopleFilterInput): PeopleResult\n people_external(filter: PeopleFilterInput): PeopleResult\n \n #Groups\n groups(filter: GroupsFilterInput): GroupsResult\n groupSources: GroupSourceResults\n groupMembership(filter: GroupMembershipFilterInput): GroupMembershipResult\n groupById(filter: GroupsByIdFilterInput): GroupByIdResult\n\n #Roles\n roles(filter: RolesFilterInput): RolesResult\n roleMembership(filter: RoleMembershipFilterInput): RoleMembershipResult\n roleById(filter: RolesByIdFilterInput): RoleByIdResult\n\n #Position Association\n employee_association(filter: EmployeeAssociationFilterInput): EmployeeAssociationResult\n employee_association_jobtypeids(filter: EmployeeAssociationJobTypeIdsFilterInput): JobTypeIdsResult\n\n #Organizations\n organizations(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationById(filter: OrganizationByIdFilterInput): OrganizationByIdResult\n organizationDivisions(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationDivisionById(filter: OrganizationByIdFilterInput): OrganizationDivisionByIdResult\n organizationSubdivisions(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationSubdivisionById(filter: OrganizationByIdFilterInput): OrganizationSubdivisionByIdResult\n organizationSubdivisionL4s(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationSubdivisionL4ById(filter: OrganizationByIdFilterInput): OrganizationSubdivisionL4ByIdResult\n organizationDepartments(filter: OrganizationHierarchyFilterInput): OrganizationsResult\n organizationDepartmentById(filter: OrganizationByIdFilterInput): OrganizationDepartmentByIdResult\n\n #Accounts\n accounts: AccountSourceCountsResult\n accountLookup(filter: AccountLookupFilterInput): AccountLookupResult\n accountSources: AccountSourcesResult\n\n #Student Association\n student_association(filter: StudentAssociationFilterInput): StudentAssociationResult\n}\n```", "x-amf-title": "GraphQL Schema" }, "paths": { @@ -1349,6 +1349,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -1385,6 +1386,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -1543,6 +1545,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -1579,6 +1582,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -2051,6 +2055,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -2087,6 +2092,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -2245,6 +2251,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -2281,6 +2288,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -2753,6 +2761,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -2789,6 +2798,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -2947,6 +2957,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -2983,6 +2994,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -3455,6 +3467,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -3491,6 +3504,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -3649,6 +3663,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -3685,6 +3700,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -4157,6 +4173,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -4193,6 +4210,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -4351,6 +4369,7 @@ "employee_id": "10987654", "position_number": "P123456", "position_title": "Senior Software Engineer", + "job_indicator": "P", "relationship_to_organization": "Employee", "employee_classification": "MSP", "employee_classification_description": "Management & Senior Professional", @@ -4387,6 +4406,7 @@ "employee_id": "20987654", "position_number": "P654321", "position_title": "Adjunct Instructor", + "job_indicator": "S", "relationship_to_organization": "Academic", "employee_classification": "ACADEMIC", "employee_classification_description": "Academic Personnel", @@ -4573,6 +4593,7 @@ "employee_record": "0", "position_number": "12345678", "position_title": "Application Developer", + "job_indicator": "P", "relationship_to_organization": "EMPLOYEE", "employee_classification": "P", "employee_classification_description": "Professional", @@ -4612,6 +4633,7 @@ "employee_record": "1", "position_number": "22334455", "position_title": "Integration Engineer", + "job_indicator": "S", "relationship_to_organization": "EMPLOYEE", "employee_classification": "P", "employee_classification_description": "Professional", @@ -6237,6 +6259,15 @@ "position_title": { "type": "string" }, + "job_indicator": { + "description": "Job indicator. Values are N (Not Applicable), S (Secondary Job), P (Primary Job).", + "enum": [ + "N", + "S", + "P" + ], + "type": "string" + }, "relationship_to_organization": { "type": "string" }, @@ -6474,6 +6505,15 @@ "position_title": { "type": "string" }, + "job_indicator": { + "description": "Job indicator. Values are N (Not Applicable), S (Secondary Job), P (Primary Job).", + "enum": [ + "N", + "S", + "P" + ], + "type": "string" + }, "relationship_to_organization": { "type": "string" }, diff --git a/update-spec.sh b/update-spec.sh index a5ae497..0fcbdbe 100755 --- a/update-spec.sh +++ b/update-spec.sh @@ -18,7 +18,7 @@ set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" cd "${SCRIPT_DIR}" -VERSION=${1:-"1.0.33"} +VERSION=${1:-"1.0.34"} SPEC_URL="https://anypoint.mulesoft.com/exchange/portals/university-of-california-346/organizations/9b04bfa8-6eeb-4d85-b676-91db930f8411/assets/9b04bfa8-6eeb-4d85-b676-91db930f8411/iam-rosetta-api/${VERSION}/files/fat-oas/zip/?sha=1786485917112" SPEC_DIR="${SCRIPT_DIR}/specs" SPEC_FILE="${SPEC_DIR}/rosetta-api.json"