· 6 years ago · Mar 04, 2020, 11:12 AM
1type Query {
2 SocialXQuery: SocialXQuery
3}
4
5extend type SocialXMutation {
6 """Create a profile"""
7 createProfile(data: ProfileCreateInput): Profile!
8 """Add client to profile"""
9 addClientsToProfile(where: ProfileWhereInput!, client: ID!): ProfileConnection!
10 """Add supplier to profile"""
11 addSuppliersToProfile(where: ProfileWhereInput!, supplier: ID!): ProfileConnection!
12 """Remove client from profile"""
13 removeClientsFromProfile(where: ProfileWhereInput!, client: ID!): ProfileConnection!
14 """Remove supplier from profile"""
15 removeSuppliersFromProfile(where: ProfileWhereInput!, supplier: ID!): ProfileConnection!
16 """Remove profile"""
17 removeProfile(code: ID!): ProfileConnection!
18 """Update Profile"""
19 updateProfile(where: ProfileWhereInput!, data: ProfileUpdateInput): ProfileConnection!
20 """Remove office from Profile"""
21 removeOfficeFromProfile(where: ProfileWhereInput!, data: LocationOffice!): ProfileConnection!
22 """Add office to Profile"""
23 addOfficeToProfile(where: ProfileWhereInput!, data: LocationOffice!): ProfileConnection!
24 """Remove classification from Profile"""
25 removeClassificationFromProfile(where: ProfileWhereInput!, data: ProfileClasification!): ProfileConnection!
26 """Add classification to Profile"""
27 addClassificationToProfile(where: ProfileWhereInput!, data: ProfileClasification!): ProfileConnection!
28 """Remove Api type from Profile"""
29 removeApiTypeFromProfile(where: ProfileWhereInput!, data: ProfileApiType!): ProfileConnection!
30 """Add Api type to Profile"""
31 addApiTypeToProfile(where: ProfileWhereInput!, data: ProfileApiType!): ProfileConnection!
32 """Remove Seller integration type from Profile"""
33 removeSellerIntegrationTypeFromProfile(where: ProfileWhereInput!, data: SellerIntegrationType!): ProfileConnection!
34 """Add Seller integration type to Profile"""
35 addSellerIntegrationTypeToProfile(where: ProfileWhereInput!, data: SellerIntegrationType!): ProfileConnection!
36}
37
38extend type SocialXQuery {
39 profile(code: ID!): Profile!
40 """Get all profiles"""
41 allProfiles(where: ProfileWhereInput, orderBy: ProfileOrderByInput, relay: RelayInput): ProfileConnection!
42}
43
44type LocationOffice {
45 """Country in ISO 3166-1 alpha-2"""
46 country: String!
47 """Latitude"""
48 latitude: Float!
49 """longuitude"""
50 longuitude: Float!
51}
52
53"""The profile to use in XTG Platform"""
54type Profile implements Node {
55 """Unique profile code"""
56 code: ID!
57 """All profile data informations"""
58 profileData: ProfileData
59 """Errors that will lead the service to abort"""
60 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
61 """Create date"""
62 createdAt: DateTime!
63 """Update date"""
64 updatedAt: DateTime!
65}
66
67type ProfileConnection {
68 edges: [ProfileEdge]
69 pageInfo: PageInfo!
70 """List of advise messages."""
71 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
72 """Identifies the total count of items in the connection."""
73 totalCount: Int!
74}
75
76type ProfileData {
77 """Profile Name"""
78 name: String!
79 """Profile Slug"""
80 slug: String!
81 """Profile Order"""
82 order: Int!
83 """Profile HeadQuarter"""
84 headquarter: LocationOffice
85 """Profile offices"""
86 offices: [LocationOffice]!
87 """Profile Logo Url"""
88 logoUrl: URI
89 """Profile Website"""
90 website: URI
91 """Indicates if Profile is a buyer"""
92 isBuyer: Boolean!
93 """Indicates if Profile is a seller"""
94 isSeller: Boolean!
95 """Profile Status"""
96 status: ProfileStatus!
97 """Buyer categories"""
98 buyerCategory: ProfileBuyerCategory
99 """Seller categories"""
100 sellerCategory: ProfileSellerCategory
101 """Profile Clasification"""
102 clasification: [ProfileClasification!]
103 """Seller integration type"""
104 sellerIntegrationType: [SellerIntegrationType!]
105 """Prfoile Api types"""
106 apiTypes: [ProfileApiType!]
107 """Profile clients"""
108 clients: ClientConnection
109 """Profile suppliers"""
110 suppliers: SupplierConnection
111 """Indicates teh group where profile belongs"""
112 group: Group!
113 """Profile owner"""
114 owner: Organization!
115 """Create date"""
116 createdAt: DateTime!
117 """Update date"""
118 updatedAt: DateTime!
119}
120
121type ProfileEdge {
122 cursor: String!
123 node: Profile
124}
125
126input ProfileCreateInput {
127 code: ID!
128 name: String!
129 slug: String!
130 order: Int
131 headquerter: LocationOffice
132 offices: [LocationOffice!]
133 logoUrl: URI
134 website: URI
135 isSeller: Boolean!
136 status: ProfileStatus!
137 buyerCategory: ProfileBuyerCategory
138 sellerCategory: ProfileSellerCategory
139 clasification: [ProfileClasification!]
140 sellerIntegrationType: [SellerIntegrationType!]
141 apiTypes: [ProfileApiType!]
142 clients: [ID!]
143 suppliers: [ID!]
144 group: ID!
145 owner: ID!
146}
147
148input ProfileUpdateInput {
149 name: String
150 order: Int
151 headquerter: LocationOffice
152 logoUrl: URI
153 website: URI
154 isSeller: Boolean
155 status: ProfileStatus
156 buyerCategory: ProfileBuyerCategory
157 sellerCategory: ProfileSellerCategory
158 group: ID
159 owner: ID
160}
161
162input ProfileWhereInput {
163 _search: String
164 """Logical AND on all given filters"""
165 AND: [ProfileWhereInput!]
166 """Logical OR on all given filters"""
167 OR: [ProfileWhereInput!]
168 """Logical NOT on all given filters combined by AND"""
169 NOT: [ProfileWhereInput!]
170 """All values that are contained in given list."""
171 code_in: [ID!]
172 """All values that are contained in given list."""
173 name_in: [String!]
174 """All values that are contained in given list."""
175 slug_in: [String!]
176 """Profile Status"""
177 status: ProfileStatus
178 """Get all profiles by seller or not seller"""
179 isSeller: Boolean
180 isActive: Boolean
181}
182
183enum ProfileApiType {
184 HOTEL
185 TRANSPORTATION
186 CAR
187 TRANSFER
188 ACTIVITIES
189 PAYMENT
190 PACKAGE
191}
192
193enum ProfileBuyerCategory {
194 PowerBuyer
195 Affiliate
196 NotSet
197}
198
199enum ProfileClasification {
200 OTA
201 DMC
202 BEDBANK
203 TOUR_OPERATOR
204 AIRLINE
205 CHANNEL_MANAGER
206 BOOKING_ENGINE
207 SWITCH
208 GDS
209 CRS
210 HOTEL_CHAIN
211 INDEPENDENT_HOTEL
212 VACATION_RENTALS
213 CONSOLIDATOR
214 WHOLESALER
215 PMS
216}
217
218enum ProfileOrderByInput {
219 code_ASC
220 code_DESC
221 name_ASC
222 name_DESC
223 group_ASC
224 group_DESC
225 isActive_ASC
226 isActive_DESC
227 owner_ASC
228 owner_DESC
229}
230
231enum ProfileSellerCategory {
232 Premium
233 Preferred
234 NotSet
235}
236
237enum ProfileStatus {
238 PUBLISHED
239 ARCHIVED
240}
241
242enum SellerIntegrationType {
243 PUSH
244 PULL
245}
246
247type SocialXMutation {
248 xtgVirtual: Boolean
249}
250
251type SocialXQuery {
252 xtgVirtual: Boolean
253}
254
255interface Node {
256 """ID code"""
257 code: ID!
258 """Date created"""
259 createdAt: DateTime!
260 """Date updated"""
261 updatedAt: DateTime!
262}
263
264"""List of advise messages."""
265type AdviseMessage {
266 """AM code: The following codes can be returned:"""
267 code: ID!
268 """Error type: The following types are valid:[type]"""
269 type: String! @deprecated(reason: "deprecated from 2018-06-01.")
270 """Error description"""
271 description: String!
272 """Indicates the level of importance of the message: Posible values ERROR WARN INFO"""
273 level: AdviseMessageLevel!
274 """Specify the external message."""
275 external: ExternalMessage
276 """Identifier to be able to investigate the cause of the error"""
277 correlationID: ID!
278}
279
280enum AdviseMessageLevel {
281 """Waringn message."""
282 WARN
283 """Error message."""
284 ERROR
285 """Info message."""
286 INFO
287}
288
289"""
290The DateTime type represents DateTime values. A good example might be a transaction TimeSpan.
291In queries or mutations, DateTime fields have to be specified in ISO 8601 format with enclosing double quotes: "2017-10-22T13:57:31.123Z".
292"""
293scalar DateTime
294
295type PageInfo {
296 hasNextPage: Boolean!
297 hasPreviousPage: Boolean!
298 startCursor: String
299 endCursor: String
300}
301
302"""
303The URI type represents a URI values. A good example mith be an Hotel Image URL.
304In queries or mutations, URI fields have to be specified in RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string format with enclosing double quotes: "http:\\www.travelgatex.com".
305"""
306scalar URI
307
308type ClientConnection {
309 edges: [ClientEdge]
310 pageInfo: PageInfo!
311 """List of advise messages."""
312 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
313 """Identifies the total count of items in the connection."""
314 totalCount: Int!
315}
316
317type SupplierConnection {
318 edges: [SupplierEdge]
319 pageInfo: PageInfo!
320 """List of advise messages."""
321 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
322 """Identifies the total count of items in the connection."""
323 totalCount: Int!
324}
325
326"""Groups are organized hierarchically."""
327type Group implements Node {
328 code: ID!
329 groupData: GroupData
330 """List of advise messages."""
331 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
332 """Date created"""
333 createdAt: DateTime!
334 """Date updated"""
335 updatedAt: DateTime!
336}
337
338"""Organization node is the root node in the hierarachy, the folders are the children of the organization and the products are the children of the folders."""
339type Organization implements Node {
340 code: ID!
341 organizationData: OrganizationData
342 """List of advise messages."""
343 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
344 """Date created"""
345 createdAt: DateTime!
346 """Date updated"""
347 updatedAt: DateTime!
348}
349
350type ExternalMessage {
351 """External Code"""
352 code: String
353 """External Message"""
354 message: String!
355}
356
357type ClientEdge {
358 node: Client
359 cursor: String!
360}
361
362type SupplierEdge {
363 node: Supplier
364 cursor: String!
365}
366
367type GroupData implements GroupCommonData {
368 id: ID!
369 code: ID!
370 label: String
371 type: GroupType!
372 info: String
373 parent: Group
374 """Only responses children.(non-hierarchically)"""
375 children(codes: [ID!], first: Int, last: Int, before: String, after: String, type: GroupType, codeStartsWith: String): GroupConnection
376 """Response all descendents groups nodes in this group (nom-hierarchically)"""
377 descendents(codes: [ID!], type: GroupType, first: Int, last: Int, before: String, after: String, codeStartsWith: String): GroupConnection
378 """Response all parents groups nodes for this group (nom-hierarchically)"""
379 parents(codes: [ID!], codeStartsWith: String, type: GroupType, first: Int, last: Int, before: String, after: String): GroupConnection
380 owner: Member
381 isEditable: Boolean!
382 productId: Int
383 resourceId: Int
384 """Sibilings of the group"""
385 siblings(codes: [ID!], type: GroupType, first: Int, last: Int, before: String, after: String, codeStartsWith: String): GroupConnection
386 """Only responses members in this group"""
387 members(codes: [ID!], type: MemberType, first: Int, last: Int, before: String, after: String): MemberConnection
388 """APIs assigned to this group. Products have APIs."""
389 apis(codes: [ID!], first: Int, last: Int, before: String, after: String): APIConnection
390 """Responses all managed groups by this group."""
391 managedGroups(group: [ID!], api: [ID!], resource: [ID!], role: [ID!], codes: [ID!], first: Int, last: Int, before: String, after: String): ManagedGroupConnection
392 """Response all members in this group's childrens (hierarchically),"""
393 allMembers(codes: [ID!], type: MemberType, first: Int, last: Int, before: String, after: String): MemberConnection
394 """Access resources in a group"""
395 accesses(codes: [ID!], first: Int, last: Int, before: String, after: String): AccessConnection
396 """Supplier resources in a group"""
397 suppliers(codes: [ID!], accessID: [ID!], first: Int, last: Int, before: String, after: String): SupplierConnection
398 """Clients resources in a group"""
399 clients(codes: [ID!], name: [ID!], isActive: Boolean, first: Int, last: Int, before: String, after: String): ClientConnection
400 """You can grant roles to members, which define the roles catalog for a group."""
401 roles(codes: [ID!], type: RoleType, first: Int, last: Int, before: String, after: String): RoleConnection
402 """Obtain all Profiles"""
403 profiles(codes: [ID!], first: Int, last: Int, before: String, after: String): ProfileConnection
404}
405
406type OrganizationData implements GroupCommonData {
407 id: ID!
408 code: ID!
409 label: String
410 type: GroupType!
411 info: String
412 """Only responses folders.(non-hierarchically)"""
413 children(codes: [ID!], first: Int, last: Int, before: String, after: String, type: GroupType, codeStartsWith: String): GroupConnection
414 """Response all descendents groups nodes in this group (nom-hierarchically)"""
415 descendents(codes: [ID!], type: GroupType, first: Int, last: Int, before: String, after: String, codeStartsWith: String): GroupConnection
416 """Response all parents groups nodes for this group (nom-hierarchically)"""
417 parents(codes: [ID!], type: GroupType, first: Int, last: Int, before: String, after: String): GroupConnection
418 owner: Member!
419 """Differents contacts in a organization."""
420 contacts: [OrganizationContact!]
421 isEditable: Boolean!
422 members(codes: [ID!], type: MemberType, first: Int, last: Int, before: String, after: String): MemberConnection
423 """APIs assigned to this group. Products have APIs."""
424 apis(codes: [ID!], first: Int, last: Int, before: String, after: String): APIConnection
425 """Products asign to a organization"""
426 products(codes: [ID!], first: Int, last: Int, before: String, after: String): ProductConnection
427 """Response all members in this group's childrens (hierarchically)"""
428 allMembers(codes: [ID!], type: MemberType, first: Int, last: Int, before: String, after: String): MemberConnection
429 """Access resources in a organization"""
430 accesses(codes: [ID!], first: Int, last: Int, before: String, after: String): AccessConnection
431 """Supplier resources in a organization"""
432 suppliers(codes: [ID!], accessID: [ID!], first: Int, last: Int, before: String, after: String): SupplierConnection
433 """Clients resources in a organization"""
434 clients(codes: [ID!], name: [ID!], isActive: Boolean, first: Int, last: Int, before: String, after: String): ClientConnection
435 """Obtain all profiles"""
436 profiles(codes: [ID!], first: Int, last: Int, before: String, after: String): ProfileConnection
437 domains: [Domain]!
438 template: String
439 """
440 ISO 3166-1 alpha-2 format country code with enclosing double quotes "ES"
441 """
442 country: Country!
443 """Access resources in this organization"""
444 allAccesses: AccessConnection
445 """Supplier resources in this organization"""
446 allSuppliers: SupplierConnection
447 """Clients resources in this organization"""
448 allClients: ClientConnection
449 """Profiles resources in this organization"""
450 allProfiles: ProfileConnection
451 primaryCustomerAccount: CustomerAccount!
452 allCustomerAccounts(where: CustomerAccountWhereInput, orderBy: CustomerAccountOrderByInput, relay: RelayInput): CustomerAccountConnection!
453}
454
455"""Client identifies who is making the request and holds the configuration assigned to it."""
456type Client implements Node {
457 code: ID!
458 clientData: ClientData
459 """Errors that abort services"""
460 error: [Error!]
461 """Date created"""
462 createdAt: DateTime!
463 """Date updated"""
464 updatedAt: DateTime!
465}
466
467"""A Supplier is a Partner who is connected to TravelgateX on the supply side in order to sell their product to connected Buyers"""
468type Supplier implements Node {
469 code: ID!
470 supplierData: SupplierData
471 """Errors that abort services"""
472 error: [Error!]
473 """Date created"""
474 createdAt: DateTime!
475 """Date updated"""
476 updatedAt: DateTime!
477}
478
479interface GroupCommonData {
480 id: ID!
481 code: ID!
482 label: String
483 type: GroupType!
484 info: String
485 children(codes: [ID!], first: Int, last: Int, before: String, after: String, type: GroupType, codeStartsWith: String): GroupConnection
486 owner: Member
487 isEditable: Boolean!
488 members(codes: [ID!], type: MemberType, first: Int, last: Int, before: String, after: String): MemberConnection
489 apis(codes: [ID!], first: Int, last: Int, before: String, after: String): APIConnection
490 allMembers(codes: [ID!], type: MemberType, first: Int, last: Int, before: String, after: String): MemberConnection
491 accesses(codes: [ID!], first: Int, last: Int, before: String, after: String): AccessConnection
492 suppliers(codes: [ID!], accessID: [ID!], first: Int, last: Int, before: String, after: String): SupplierConnection
493 clients(codes: [ID!], name: [ID!], isActive: Boolean, first: Int, last: Int, before: String, after: String): ClientConnection
494}
495
496enum GroupType {
497 ROOT
498 ORG
499 GROUP
500 PROFILE
501 TEAM
502 FOLDER
503 PRODUCT
504 RESOURCE
505 SPECIFIC_RESOURCE
506}
507
508type GroupConnection {
509 edges: [GroupEdge]
510 pageInfo: PageInfo!
511 """List of advise messages."""
512 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
513 """Identifies the total count of items in the connection."""
514 totalCount: Int!
515}
516
517"""
518You grant access to members which can be either:
519Users: A developer, administrator or any other person from your Organization who interacts with the TravelgateX Platform. An email address can be used as the identity of a User.
520Service Accounts: An application (Client) instead of an individual User. If you prefer, you can create as many Service Accounts as needed to represent different logical components of your application.
521"""
522type Member implements Node {
523 code: ID!
524 memberData: MemberData
525 """List of advise messages."""
526 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
527 """Date created"""
528 createdAt: DateTime!
529 """Date updated"""
530 updatedAt: DateTime!
531}
532
533type MemberConnection {
534 edges: [MemberEdge]
535 pageInfo: PageInfo!
536 """List of advise messages."""
537 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
538 """Identifies the total count of items in the connection."""
539 totalCount: Int!
540}
541
542enum MemberType {
543 USER
544 SERVICE_ACCOUNT
545}
546
547type APIConnection {
548 edges: [APIEdge]
549 pageInfo: PageInfo!
550}
551
552type ManagedGroupConnection {
553 edges: [ManagedGroupEdge]
554 pageInfo: PageInfo!
555}
556
557type AccessConnection {
558 edges: [AccessEdge]
559 pageInfo: PageInfo!
560 """List of advise messages."""
561 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
562 """Identifies the total count of items in the connection."""
563 totalCount: Int!
564}
565
566type RoleConnection {
567 edges: [RoleEdge]
568 pageInfo: PageInfo!
569}
570
571enum RoleType {
572 """Allows a User to make Queries of resources, but not change any resource data"""
573 VIEWER
574 """Allows a User to make Mutations (changes) to the resource data"""
575 EDITOR
576 """Allows a User to make All (changes) to the resource"""
577 ADMIN
578 """Allows a User to make use of reources only for extecutations queries."""
579 EXECUTOR
580 """Allows a User to make othen kind of operation with the resource. Defined by API."""
581 SPECIFIC
582}
583
584type OrganizationContact {
585 type: OrganizationContactType!
586 user: Member!
587}
588
589type ProductConnection {
590 edges: [ProductEdge]
591 pageInfo: PageInfo!
592}
593
594type Domain implements Node {
595 code: ID!
596 domainData: DomainData
597 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
598 createdAt: DateTime!
599 updatedAt: DateTime!
600}
601
602"""
603The Country type represents Country values. A good example might be a Passenger Nationality.
604In queries or mutations, Country fields have to be specified in ISO 3166-1 alpha-2 format with enclosing double quotes "ES".
605"""
606scalar Country
607
608type CustomerAccount implements Node {
609 code: ID!
610 customerAccountData: CustomerAccountData
611 """List of advise messages."""
612 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
613 """Date created"""
614 createdAt: DateTime!
615 """Date updated"""
616 updatedAt: DateTime!
617}
618
619type CustomerAccountConnection {
620 edges: [CustomerAccountEdge]
621 pageInfo: PageInfo!
622 """List of advise messages."""
623 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
624 """Identifies the total count of items in the connection."""
625 totalCount: Int!
626}
627
628input CustomerAccountWhereInput {
629 _search: String
630 """All values that are contained in given list."""
631 code_in: [ID!]
632 """All values that are contained in given list."""
633 friendlyName_in: [String!]
634 isActive: Boolean
635}
636
637enum CustomerAccountOrderByInput {
638 code_ASC
639 code_DESC
640 name_ASC
641 name_DESC
642 friendlyName_ASC
643 friendlyName_DESC
644 isActive_ASC
645 isActive_DESC
646}
647
648input RelayInput {
649 first: Int
650 last: Int
651 before: String
652 after: String
653}
654
655type ClientData {
656 """ID identifier of a Client"""
657 code: ID!
658 """Client complete name"""
659 name: ID!
660 """Indicates whether a Client is active or inactive"""
661 isActive: Boolean!
662 """Indicates the group where the Client belongs"""
663 group: Group
664 """Client owner"""
665 owner: Organization
666 """Obtain all suppliers for a filter."""
667 suppliers(first: Int, last: Int, before: String, after: String, filter: SupplierFilter): SupplierConnection
668}
669
670"""Application errors"""
671type Error {
672 """Error code"""
673 code: String!
674 """Error type"""
675 type: String!
676 """Error description"""
677 description: String!
678}
679
680type SupplierData {
681 """unique identifier of a supplier"""
682 code: ID!
683 """Supplier complete name"""
684 name: String!
685 """indicates whether a supplier is active"""
686 isActive: Boolean!
687 """instance to which this supllier is connected"""
688 provider: Provider!
689 """Context where the Supplier belongs to"""
690 context: String!
691 """Service API"""
692 serviceApi: Int!
693 """SupplierGroup Internal Supplier grouping"""
694 supplierGroup: ID
695 """Accesses where the supplier is referenced"""
696 accesses(first: Int, last: Int, before: String, after: String, filter: AccessFilter): AccessConnection
697 """Supplier owner"""
698 owner: Organization!
699 """Groups where access belongs"""
700 groups(first: Int, last: Int, before: String, after: String): GroupConnection
701 """Obtain all clients for a filter."""
702 clients(first: Int, last: Int, before: String, after: String, filter: ClientFilter): ClientConnection
703 """Obtain its system."""
704 system: System!
705}
706
707type GroupEdge {
708 node: Group
709 cursor: String!
710}
711
712type MemberData {
713 id: ID!
714 code: ID!
715 label: String
716 """Can members does queries in the platform?"""
717 isActive: Boolean!
718 """Member Type"""
719 type: MemberType!
720 """which groups the member is in?"""
721 groups(codes: [ID!], type: GroupType, first: Int, last: Int, before: String, after: String): GroupConnection
722 """which roles the member has in?"""
723 roles(codes: [ID!], type: RoleType, first: Int, last: Int, before: String, after: String): RoleConnection
724 macroPermissions(codes: [ID!], first: Int, last: Int, before: String, after: String): MacroPermissionsConnection
725}
726
727type MemberEdge {
728 node: Member
729 cursor: String!
730}
731
732type APIEdge {
733 node: API
734 cursor: String!
735}
736
737type ManagedGroupEdge {
738 node: ManagedGroup
739 cursor: String!
740}
741
742type AccessEdge {
743 node: Access
744 cursor: String!
745}
746
747type RoleEdge {
748 node: Role
749 cursor: String!
750}
751
752enum OrganizationContactType {
753 ADMIN
754 BILLING
755 SALES
756 TECHNICAL
757 OTHER
758}
759
760type ProductEdge {
761 node: Product
762 cursor: String!
763}
764
765type DomainData {
766 id: ID!
767 name: DomainName!
768 organization: Organization!
769}
770
771type CustomerAccountData {
772 """cusXYZ.."""
773 code: ID!
774 name: String!
775 isActive: Boolean
776 friendlyName: String
777 organizations: OrganizationConnection
778 """Differents agents from TravelgateX"""
779 agents: [CustomerAgent!]
780}
781
782type CustomerAccountEdge {
783 node: CustomerAccount
784 cursor: String!
785}
786
787input SupplierFilter {
788 supplierID: [ID]
789 accessID: [ID]
790 groupID: [ID]
791 isActive: Boolean
792 serviceAPI: [Int]
793 owner: [ID!]
794}
795
796"""Temporary type to use only during SQL server's lifetime"""
797type Provider {
798 code: ID!
799 name: String!
800 isActive: Boolean
801 isPublic: Boolean
802}
803
804input AccessFilter {
805 accessID: [ID]
806 group: [ID]
807 owner: [ID!]
808}
809
810input ClientFilter {
811 clientID: [ID]
812 name: [String!]
813 groupID: [ID]
814 isActive: Boolean
815 owner: [ID!]
816}
817
818"""System identifies who is making the request and holds the configuration assigned to it."""
819type System implements Node {
820 code: ID!
821 systemData: SystemData
822 """Errors that abort services"""
823 error: [Error!]
824 """Date created"""
825 createdAt: DateTime!
826 """Date updated"""
827 updatedAt: DateTime!
828}
829
830type MacroPermissionsConnection {
831 edges: [MacroPermissionEdge]
832 pageInfo: PageInfo!
833}
834
835type API implements Node {
836 code: ID!
837 apiData: APIData
838 """List of advise messages."""
839 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
840 """Date created"""
841 createdAt: DateTime!
842 """Date updated"""
843 updatedAt: DateTime!
844}
845
846type ManagedGroup implements Node {
847 code: ID!
848 managedGroupData: ManagedGroupData
849 """List of advise messages."""
850 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
851 """Date created"""
852 createdAt: DateTime!
853 """Date updated"""
854 updatedAt: DateTime!
855}
856
857"""An Access is a set of credentials and configuration in order to access the system of a Supplier."""
858type Access implements Node {
859 code: ID!
860 accessData: AccessData
861 """Errors that abort services"""
862 error: [Error!]
863 """Date created"""
864 createdAt: DateTime!
865 """Date updated"""
866 updatedAt: DateTime!
867}
868
869"""Permissions determine what operations are allowed on a resource"""
870type Role implements Node {
871 code: ID!
872 roleData: RoleData
873 """List of advise messages."""
874 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
875 """Date created"""
876 createdAt: DateTime!
877 """Date updated"""
878 updatedAt: DateTime!
879}
880
881"""An APIs collection."""
882type Product implements Node {
883 code: ID!
884 productData: ProductData!
885 """List of advise messages."""
886 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
887 """Date created"""
888 createdAt: DateTime!
889 """Date updated"""
890 updatedAt: DateTime!
891}
892
893"""Scalar for type Domain"""
894scalar DomainName
895
896type OrganizationConnection {
897 edges: [OrganizationEdge]
898 pageInfo: PageInfo!
899 """List of advise messages."""
900 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
901 """Identifies the total count of items in the connection."""
902 totalCount: Int!
903}
904
905type CustomerAgent {
906 type: CustomerAgentType!
907 """user@xmltravelgate.com o user@travelgatex.com"""
908 user: Member!
909}
910
911type SystemData {
912 """ID identifier of a System"""
913 code: ID!
914 """System complete name"""
915 name: ID!
916 """Indicates whether a System is active or inactive"""
917 isActive: Boolean!
918 """Indicates the group where the System belongs"""
919 group: Group
920 """System owner"""
921 owner: Organization
922 """Obtain all suppliers for a filter."""
923 suppliers(filter: SupplierFilter): [Supplier]!
924}
925
926type MacroPermissionEdge {
927 node: MacroPermission
928 cursor: String!
929}
930
931type APIData {
932 """API Code"""
933 code: ID!
934 """API ID"""
935 id: ID!
936 """Is API Editable or not."""
937 isEditable: Boolean!
938 """API label"""
939 label: String
940 """which groups are asigned this API?"""
941 groups(codes: [ID!], type: GroupType, first: Int, last: Int, before: String, after: String): GroupConnection
942 """which resources are asigned this API?"""
943 resources(codes: [ID!], first: Int, last: Int, before: String, after: String): ResourceConnection
944 """which operations are asigned this API?"""
945 operations(codes: [ID!], type: OperationType, types: [OperationType!], first: Int, last: Int, before: String, after: String): OperationConnection
946 """Advise messages catalog."""
947 adviseMessageCatalog(level: [AdviseMessageLevel]): [AdviseMessage!]
948}
949
950type ManagedGroupData {
951 code: ID!
952 group: Group!
953 api: API!
954 resource: Resource!
955 role: Role!
956}
957
958type AccessData {
959 """Access descriptive name"""
960 name: String!
961 """Indicates if Access is active"""
962 isActive: Boolean!
963 """Unique AccessConfiguration identifier"""
964 code: ID!
965 """Supplier for this Access"""
966 supplier: Supplier!
967 """Indicates if Access can be used for testing or not"""
968 isTest: Boolean!
969 """User code to connect to supplier"""
970 user: String
971 """Password for the connection"""
972 password: String
973 """Specific URLs"""
974 urls: Urls
975 """List of parameters for additional information"""
976 parameters: [Parameter]
977 """Markets allowed for the Access"""
978 markets: [String!]
979 """Business rule types for the Access"""
980 rateRules: [RateRulesType!]
981 """Parent Access if Shared Access"""
982 shared: Access
983 """Access owner"""
984 owner: Organization
985 """Refresh time to update Despriptive Info"""
986 updateDescriptiveInfo: Int!
987 """Limit on DescriptiveInfo; 0 denotates no limit"""
988 descriptiveInfoLimit: Int!
989 """True if scheduler is active"""
990 isSchedulerActive: Boolean
991 """Refresh time to update other batch lists"""
992 updateList: Int!
993 """Range on update date"""
994 updateDateRange: String!
995 """Groups where access belongs"""
996 groups(first: Int, last: Int, before: String, after: String): GroupConnection
997 """Legacy HubUser#HubProvider relation"""
998 legacyLink: LegacyLink
999 """Parent Master Access. null=>masterAccess, notNull=>slaveAccess"""
1000 master: Access
1001}
1002
1003type RoleData {
1004 id: ID!
1005 code: ID!
1006 type: RoleType!
1007 isEditable: Boolean!
1008 label: String
1009 """Has resource Create permission?"""
1010 isCreate: Boolean!
1011 """Has resource Create permission?"""
1012 isRead: Boolean!
1013 """Has resource Update permission?"""
1014 isUpdate: Boolean!
1015 """Has resource Delete permission?"""
1016 isDelete: Boolean!
1017 """Is role enabled or not?"""
1018 isEnable: Boolean!
1019 """Has resource Executable permission?"""
1020 isExecutable: Boolean!
1021 """Has any other non-basic permission/s?"""
1022 isSpecial: Boolean!
1023 """Special permission"""
1024 special: String
1025 """Resources used"""
1026 resources(codes: [ID!], first: Int, last: Int, before: String, after: String): ResourceConnection
1027}
1028
1029type ProductData {
1030 id: ID!
1031 code: ID!
1032 label: String
1033 """A Product has many APIs"""
1034 apis(codes: [ID!], first: Int, last: Int, before: String, after: String): APIConnection
1035 macroPermissions(codes: [ID!], first: Int, last: Int, before: String, after: String): MacroPermissionsConnection
1036 adviseMessageCatalog(level: [AdviseMessageLevel]): [AdviseMessage!]
1037}
1038
1039type OrganizationEdge {
1040 node: Organization
1041 cursor: String!
1042}
1043
1044enum CustomerAgentType {
1045 KAM
1046 TECH_KAM
1047 CUSTOMER_CARE
1048 OTHER
1049}
1050
1051type MacroPermission {
1052 code: ID!
1053 macroPermissionData: MacroPermissionData
1054 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
1055 createdAt: DateTime!
1056 updatedAt: DateTime!
1057}
1058
1059type ResourceConnection {
1060 edges: [ResourceEdge]
1061 pageInfo: PageInfo!
1062}
1063
1064type OperationConnection {
1065 edges: [OperationEdge]
1066 pageInfo: PageInfo!
1067}
1068
1069enum OperationType {
1070 SEARCH
1071 QUOTE
1072 BOOKING
1073 CANCEL
1074 SCHEDULER
1075 CREATE
1076 READ
1077 UPDATE
1078 DELETE
1079 EXECUTE
1080 OTHER
1081}
1082
1083"""Resources are those used in APIs and Products."""
1084type Resource implements Node {
1085 code: ID!
1086 resourceData: ResourceData
1087 """List of advise messages."""
1088 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
1089 """Date created"""
1090 createdAt: DateTime!
1091 """Date updated"""
1092 updatedAt: DateTime!
1093}
1094
1095"""Url's"""
1096type Urls {
1097 """Specific URL for Availability method."""
1098 search: URI
1099 """Specific URL for Reservation method."""
1100 quote: URI
1101 """Specific URL for Valuation method."""
1102 book: URI
1103 """Supplier URL used for multiple methods."""
1104 generic: URI
1105}
1106
1107"""Parameters for additional information for the supplier's configuration."""
1108type Parameter {
1109 """
1110 Contains the keyword/Id to identify a parameter.
1111 This information is mandatory.
1112 """
1113 key: ID!
1114 """
1115 Contains the parameter values.
1116 This information is mandatory.
1117 """
1118 value: String!
1119}
1120
1121"""Rate Rules"""
1122enum RateRulesType {
1123 """The product can't be sold separately from another product attached to it, such as a flight."""
1124 PACKAGE
1125 """Options that can only be sold to people who are 55 and older."""
1126 OLDER55
1127 """Options that can only be sold to people who are 60 and older."""
1128 OLDER60
1129 """Options that can only be sold to people who are 65 and older."""
1130 OLDER65
1131 """The rate CanaryResident is applicable to Canary Islands residents only."""
1132 CANARY_RESIDENT
1133 """The rate BalearicResident is applicable to Balearic Islands residents only."""
1134 BALEARIC_RESIDENT
1135 """The rate largeFamily is applied to large families and is determined by each supplier"""
1136 LARGE_FAMILY
1137 """The rate honeymoon is applied to those who just got married and is determined by each supplier."""
1138 HONEYMOON
1139 """The rate publicServant is applicable to public servants only."""
1140 PUBLIC_SERVANT
1141 """The rate unemployed is applied to those without work."""
1142 UNEMPLOYED
1143 """The rate normal refers to options without RateRule"""
1144 NORMAL
1145 """The rate non refundable is applied to non refundable options"""
1146 NON_REFUNDABLE
1147}
1148
1149type LegacyLink {
1150 hubUser: Client!
1151 hubProvider: Supplier!
1152}
1153
1154type MacroPermissionData {
1155 id: ID!
1156 code: ID!
1157 productID: ID!
1158 group: ID!
1159 label: String
1160 permissions: [Permission]
1161}
1162
1163type ResourceEdge {
1164 node: Resource
1165 cursor: String!
1166}
1167
1168type OperationEdge {
1169 node: Operation
1170 cursor: String!
1171}
1172
1173type ResourceData {
1174 id: ID!
1175 code: ID!
1176 isEditable: Boolean!
1177 label: String
1178 """which API have asigned this resource?"""
1179 apis(codes: [ID!], first: Int, last: Int, before: String, after: String): APIConnection
1180 """which roles are asigned or are possibles in this resource?"""
1181 roles(codes: [ID!], type: RoleType, first: Int, last: Int, before: String, after: String): RoleConnection
1182}
1183
1184type Permission {
1185 role: Role!
1186 resource: Resource!
1187 api: API!
1188}
1189
1190type Operation implements Node {
1191 code: ID!
1192 operationData: OperationData
1193 """List of advise messages."""
1194 adviseMessage(level: [AdviseMessageLevel]): [AdviseMessage!]
1195 """Date created"""
1196 createdAt: DateTime!
1197 """Date updated"""
1198 updatedAt: DateTime!
1199}
1200
1201type OperationData {
1202 id: ID!
1203 code: ID!
1204 label: String
1205 types: [OperationType!]!
1206 api: API
1207}