diff --git a/README.md b/README.md index 9cdbf6d..0846e13 100644 --- a/README.md +++ b/README.md @@ -89,8 +89,22 @@ foreach (Person person in people) ##### Specific fields ```csharp DataList people = await client.Get(Query.Person - .Select(PersonField.ID, PersonField.Name, PersonField.CustomFields)); + .Select(PersonField.ID, PersonField.Organization, PersonField.Name, PersonField.CustomFields)); ``` +By using the `Select` method on the `Query.Person` object, you can specify the fields you want to include in the response. +The example shows the selection of fields such as `ID`, `Organization`, `Name`, and `CustomFields`. +By default, a set of fields will be returned for all selected GraphQL `OBJECT` type fields, such as `Organization` and `CustomFields`. + +```csharp +DataList people = await client.Get(Query.Person + .Select(PersonField.ID, PersonField.Name) + .SelectOrganization(new OrganizationQuery() + .Select(OrganizationField.ID, OrganizationField.Name, OrganizationField.Disabled))); +``` + +To further refine the selection of fields by using a query for a specific GraphQL `OBJECT` type field, in this case, `Organization`. +By using the `SelectOrganization` method on the `Query.Person` object, you can specify the fields to include for the `Organization` field. +The example demonstrates the selection of fields like `ID`, `Name`, and `Disabled` for the `Organization` field. ##### All fields ```csharp diff --git a/Scr/Sdk4me.GraphQL/Queries/AccountQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AccountQuery.cs index e75b42a..a48d0dd 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AccountQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AccountQuery.cs @@ -12,5 +12,15 @@ public AccountQuery() : base("account", typeof(Account), false) { } + + /// + /// The organization for which the account was prepared. + /// + public AccountQuery SelectOrganization(OrganizationQuery query) + { + query.FieldName = "organization"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ActivityIDQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ActivityIDQuery.cs new file mode 100644 index 0000000..bc60d32 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/ActivityIDQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The ActivityID query. + /// + public class ActivityIDQuery : Query + { + /// + /// Initialize a new activity id query instance. + /// + public ActivityIDQuery() + : base("", typeof(ActivityID), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/AffectedSlaQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AffectedSlaQuery.cs index 7b06f75..8d9d28c 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AffectedSlaQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AffectedSlaQuery.cs @@ -12,5 +12,105 @@ public AffectedSlaQuery() : base("affectedSlas", typeof(AffectedSla), true) { } + + /// + /// The First line team field is automatically set to the team that, at the time the affected SLA was created, was selected in the First line team field of the related service instance. + /// + public AffectedSlaQuery SelectFirstLineTeam(TeamQuery query) + { + query.FieldName = "firstLineTeam"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Request field is automatically set to the request for which the affected SLA was generated. + /// + public AffectedSlaQuery SelectRequest(RequestQuery query) + { + query.FieldName = "request"; + query.IsConnection = false; + return Select(query); + } + + /// + /// If the impact of the affected SLA is "Top - Service Down for Several Users", the Service hours field is automatically set to the service hours calendar of the service offering of the related service level agreement. + /// + public AffectedSlaQuery SelectServiceHours(CalendarQuery query) + { + query.FieldName = "serviceHours"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Service instance field is automatically set to the Service Instance that, at the time the affected SLA was created, was selected in the Service instance field of the related service level agreement. + /// + public AffectedSlaQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Service level agreement field is automatically set to the service level agreement that is considered affected. + /// + public AffectedSlaQuery SelectServiceLevelAgreement(ServiceLevelAgreementQuery query) + { + query.FieldName = "serviceLevelAgreement"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Standard service request field is automatically set to the standard service request that is linked to the service offering of the service level agreement and which response and resolution targets were used to calculate the responseTargetAt and resolutionTargetAt for the affected SLA. + /// + public AffectedSlaQuery SelectStandardServiceRequest(StandardServiceRequestQuery query) + { + query.FieldName = "standardServiceRequest"; + query.IsConnection = false; + return Select(query); + } + + /// + /// A list of time periods between which the clock was stopped for this affected SLA. + /// + public AffectedSlaQuery SelectStoppedClockPeriods(PeriodQuery query) + { + query.FieldName = "stoppedClockPeriods"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Supplier field is automatically set to the Organization that, at the time the affected SLA was created, was selected in the Service provider field of the related service instance. This field is only filled out, however, if this service provider is an external organization. + /// + public AffectedSlaQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Support hours field is automatically set to the support hours Calendar that was selected for the impact level specified above in the service offering of the related service level agreement. + /// + public AffectedSlaQuery SelectSupportHours(CalendarQuery query) + { + query.FieldName = "supportHours"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Support team field is automatically set to the team that, at the time the affected SLA was created, was selected in the Support team field of the related service instance. + /// + public AffectedSlaQuery SelectSupportTeam(TeamQuery query) + { + query.FieldName = "supportTeam"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AgileBoardColumnQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AgileBoardColumnQuery.cs index b498bad..29c350a 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AgileBoardColumnQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AgileBoardColumnQuery.cs @@ -13,6 +13,26 @@ public AgileBoardColumnQuery() { } + /// + /// The account this record belongs to. + /// + public AgileBoardColumnQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Agile board the column is part of. + /// + public AgileBoardColumnQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + /// /// Items in this column. /// @@ -21,5 +41,25 @@ public AgileBoardColumnQuery SelectItems(AgileBoardItemQuery query) query.FieldName = "items"; return Select(query); } + + /// + /// Person to assign the item to when action type is assign and an item is added to this column. + /// + public AgileBoardColumnQuery SelectMember(PersonQuery query) + { + query.FieldName = "member"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Team to assign the item to when action type is assign and an item is added to this column. + /// + public AgileBoardColumnQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AgileBoardItemQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AgileBoardItemQuery.cs index 49dbc7c..4ce0baf 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AgileBoardItemQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AgileBoardItemQuery.cs @@ -12,5 +12,25 @@ public AgileBoardItemQuery() : base("", typeof(AgileBoardItem), true) { } + + /// + /// Board this item is placed on. + /// + public AgileBoardItemQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Column this item is placed in. + /// + public AgileBoardItemQuery SelectAgileBoardColumn(AgileBoardColumnQuery query) + { + query.FieldName = "agileBoardColumn"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AgileBoardQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AgileBoardQuery.cs index 9b9a0cd..302aa9f 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AgileBoardQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AgileBoardQuery.cs @@ -13,6 +13,16 @@ public AgileBoardQuery() { } + /// + /// The account this record belongs to. + /// + public AgileBoardQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Columns of this agile board. /// @@ -22,6 +32,16 @@ public AgileBoardQuery SelectColumns(AgileBoardColumnQuery query) return Select(query); } + /// + /// Scrum sprint the agile board is currently linked to. + /// + public AgileBoardQuery SelectCurrentSprint(SprintQuery query) + { + query.FieldName = "currentSprint"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Description field. /// @@ -30,5 +50,15 @@ public AgileBoardQuery SelectDescriptionAttachments(AttachmentQuery query) query.FieldName = "descriptionAttachments"; return Select(query); } + + /// + /// Manager of the agile board. + /// + public AgileBoardQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AppInstanceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AppInstanceQuery.cs index 9127ed8..9438bc1 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AppInstanceQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AppInstanceQuery.cs @@ -13,6 +13,26 @@ public AppInstanceQuery() { } + /// + /// The account this record belongs to. + /// + public AppInstanceQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// App offering (version) this instance is at. + /// + public AppInstanceQuery SelectAppOffering(AppOfferingQuery query) + { + query.FieldName = "appOffering"; + query.IsConnection = false; + return Select(query); + } + /// /// Automation rules of this instance. /// @@ -22,6 +42,16 @@ public AppInstanceQuery SelectAutomationRules(AutomationRuleQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public AppInstanceQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -31,6 +61,46 @@ public AppInstanceQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// Account this app instance is for. + /// + public AppInstanceQuery SelectCustomerAccount(AccountQuery query) + { + query.FieldName = "customerAccount"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Contact person of customer regarding this app instance. + /// + public AppInstanceQuery SelectCustomerRepresentative(PersonQuery query) + { + query.FieldName = "customerRepresentative"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Webhook of this app instance. + /// + public AppInstanceQuery SelectWebhook(WebhookQuery query) + { + query.FieldName = "webhook"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The current policy used for the instance's webhook. + /// + public AppInstanceQuery SelectWebhookPolicy(WebhookPolicyQuery query) + { + query.FieldName = "webhookPolicy"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'AppInstance' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -63,7 +133,7 @@ public AppInstanceQuery SelectCustomFieldsAttachments(AttachmentQuery query) ///
• Matches are case-sensitive.
/// /// - public AppInstanceQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public AppInstanceQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/AppOfferingAutomationRuleQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AppOfferingAutomationRuleQuery.cs index 12fbfed..4fa5aec 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AppOfferingAutomationRuleQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AppOfferingAutomationRuleQuery.cs @@ -12,5 +12,45 @@ public AppOfferingAutomationRuleQuery() : base("", typeof(AppOfferingAutomationRule), true) { } + + /// + /// The account this record belongs to. + /// + public AppOfferingAutomationRuleQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Actions field is used to define actions that should be executed when the condition of the automation rule is met. + /// + public AppOfferingAutomationRuleQuery SelectActions(AutomationRuleActionQuery query) + { + query.FieldName = "actions"; + query.IsConnection = false; + return Select(query); + } + + /// + /// AppOffering this rule belongs to. + /// + public AppOfferingAutomationRuleQuery SelectAppOffering(AppOfferingQuery query) + { + query.FieldName = "appOffering"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Expressions field is used to define expressions that can subsequently be used to define the rule's conditions and the update action(s) that the rule is to perform. + /// + public AppOfferingAutomationRuleQuery SelectExpressions(AutomationRuleExpressionQuery query) + { + query.FieldName = "expressions"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AppOfferingQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AppOfferingQuery.cs index 9a72ea6..b57e5bc 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AppOfferingQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AppOfferingQuery.cs @@ -13,6 +13,16 @@ public AppOfferingQuery() { } + /// + /// The account this record belongs to. + /// + public AppOfferingQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Instances of this app. /// @@ -57,5 +67,35 @@ public AppOfferingQuery SelectFeaturesAttachments(AttachmentQuery query) query.FieldName = "featuresAttachments"; return Select(query); } + + /// + /// Scopes of this app offering. + /// + public AppOfferingQuery SelectScopes(AppOfferingScopeQuery query) + { + query.FieldName = "scopes"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Service instance that is linked to the app offering. + /// + public AppOfferingQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension version that is linked to the app offering. + /// + public AppOfferingQuery SelectUiExtensionVersion(UiExtensionVersionQuery query) + { + query.FieldName = "uiExtensionVersion"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AppOfferingScopeQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AppOfferingScopeQuery.cs new file mode 100644 index 0000000..89d3db4 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/AppOfferingScopeQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The AppOfferingScope query. + /// + public class AppOfferingScopeQuery : Query + { + /// + /// Initialize a new app offering scope query instance. + /// + public AppOfferingScopeQuery() + : base("", typeof(AppOfferingScope), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/ArchiveQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ArchiveQuery.cs index 991fc85..12048ed 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ArchiveQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ArchiveQuery.cs @@ -12,5 +12,35 @@ public ArchiveQuery() : base("archive", typeof(Archive), true) { } + + /// + /// The account this record belongs to. + /// + public ArchiveQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The archived record. + /// + public ArchiveQuery SelectArchived(HasLifeCycleStateQuery query) + { + query.FieldName = "archived"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who archived the record. + /// + public ArchiveQuery SelectArchivedBy(PersonQuery query) + { + query.FieldName = "archivedBy"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/AutomationRuleActionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AutomationRuleActionQuery.cs new file mode 100644 index 0000000..0fdc9a9 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/AutomationRuleActionQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The AutomationRuleAction query. + /// + public class AutomationRuleActionQuery : Query + { + /// + /// Initialize a new automation rule action query instance. + /// + public AutomationRuleActionQuery() + : base("", typeof(AutomationRuleAction), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/AutomationRuleExpressionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AutomationRuleExpressionQuery.cs new file mode 100644 index 0000000..058806e --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/AutomationRuleExpressionQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The AutomationRuleExpression query. + /// + public class AutomationRuleExpressionQuery : Query + { + /// + /// Initialize a new automation rule expression query instance. + /// + public AutomationRuleExpressionQuery() + : base("", typeof(AutomationRuleExpression), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/AutomationRuleQuery.cs b/Scr/Sdk4me.GraphQL/Queries/AutomationRuleQuery.cs index 6c3d912..9f4b170 100644 --- a/Scr/Sdk4me.GraphQL/Queries/AutomationRuleQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/AutomationRuleQuery.cs @@ -13,6 +13,36 @@ public AutomationRuleQuery() { } + /// + /// The account this record belongs to. + /// + public AutomationRuleQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Actions field is used to define actions that should be executed when the condition of the automation rule is met. + /// + public AutomationRuleQuery SelectActions(AutomationRuleActionQuery query) + { + query.FieldName = "actions"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Expressions field is used to define expressions that can subsequently be used to define the rule's conditions and the update action(s) that the rule is to perform. + /// + public AutomationRuleQuery SelectExpressions(AutomationRuleExpressionQuery query) + { + query.FieldName = "expressions"; + query.IsConnection = false; + return Select(query); + } + /// /// The record that the automation rule is linked to. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/BroadcastQuery.cs b/Scr/Sdk4me.GraphQL/Queries/BroadcastQuery.cs index 437f7e5..be17783 100644 --- a/Scr/Sdk4me.GraphQL/Queries/BroadcastQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/BroadcastQuery.cs @@ -13,6 +13,16 @@ public BroadcastQuery() { } + /// + /// The account this record belongs to. + /// + public BroadcastQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Used to select one or more customer organizations when the broadcast is to be displayed for the specialists of the account in requests that were received from the selected organizations. This field is available only when the "Specialists in requests from the following customers" visibility option is selected. /// @@ -22,6 +32,16 @@ public BroadcastQuery SelectCustomers(OrganizationQuery query) return Select(query); } + /// + /// Grouped request to which customers can add request to indicate they are also affected. + /// + public BroadcastQuery SelectRequest(RequestQuery query) + { + query.FieldName = "request"; + query.IsConnection = false; + return Select(query); + } + /// /// Used to select the service instances for which the people, who are covered for them by an active SLA, need to see the broadcast. This table field is available only when the "People covered for the following service instance(s)" visibility option is selected. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/CalendarQuery.cs b/Scr/Sdk4me.GraphQL/Queries/CalendarQuery.cs index 55c9c8d..6438d7d 100644 --- a/Scr/Sdk4me.GraphQL/Queries/CalendarQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/CalendarQuery.cs @@ -13,6 +13,16 @@ public CalendarQuery() { } + /// + /// The account this record belongs to. + /// + public CalendarQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Calendar hours of the calendar. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemQuery.cs index 0bb18aa..122c350 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemQuery.cs @@ -13,6 +13,16 @@ public ConfigurationItemQuery() { } + /// + /// The account this record belongs to. + /// + public ConfigurationItemQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Relations to other configuration items. /// @@ -31,6 +41,16 @@ public ConfigurationItemQuery SelectContracts(ContractQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public ConfigurationItemQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -40,6 +60,16 @@ public ConfigurationItemQuery SelectCustomFieldsAttachments(AttachmentQuery quer return Select(query); } + /// + /// The internal organization which budget is used to pay for the configuration item. If the CI is leased or rented, the organization that pays the lease or rent is selected in this field. When creating a new CI and a value is not specified for this field, it is set to the financial owner of the CI's product. + /// + public ConfigurationItemQuery SelectFinancialOwner(OrganizationQuery query) + { + query.FieldName = "financialOwner"; + query.IsConnection = false; + return Select(query); + } + /// /// Invoices associated with this object. /// @@ -67,6 +97,26 @@ public ConfigurationItemQuery SelectProblems(ProblemQuery query) return Select(query); } + /// + /// Related product. + /// + public ConfigurationItemQuery SelectProduct(ProductQuery query) + { + query.FieldName = "product"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Recurrence for maintenance of the configuration item. + /// + public ConfigurationItemQuery SelectRecurrence(RecurrenceQuery query) + { + query.FieldName = "recurrence"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Remarks field. /// @@ -85,6 +135,16 @@ public ConfigurationItemQuery SelectRequests(RequestQuery query) return Select(query); } + /// + /// Which service instance(s) the configuration item is, or will be, a part of. When creating a new CI and a value is not specified for this field, it is set to the service of the CI's product. + /// + public ConfigurationItemQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// All service instances of this configuration item. /// @@ -94,6 +154,46 @@ public ConfigurationItemQuery SelectServiceInstances(ServiceInstanceQuery query) return Select(query); } + /// + /// Where the CI is located, if it concerns a hardware CI. + /// + public ConfigurationItemQuery SelectSite(SiteQuery query) + { + query.FieldName = "site"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The supplier from which the configuration item (CI) has been obtained. When creating a new CI and a value is not specified for this field, it is set to the supplier of the CI's product. + /// + public ConfigurationItemQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The account of the team that supports this configuration item. + /// + public ConfigurationItemQuery SelectSupportAccount(AccountQuery query) + { + query.FieldName = "supportAccount"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team responsible for supporting the configuration item and maintaining its information in the configuration management database (CMDB). When creating a new CI and a value is not specified for this field, it is set to the support team of the CI's product. Optional when status of CI equals "Removed", required otherwise. + /// + public ConfigurationItemQuery SelectSupportTeam(TeamQuery query) + { + query.FieldName = "supportTeam"; + query.IsConnection = false; + return Select(query); + } + /// /// All users of this configuration item. /// @@ -103,6 +203,26 @@ public ConfigurationItemQuery SelectUsers(PersonQuery query) return Select(query); } + /// + /// The person who will be responsible for coordinating the workflows that will be generated automatically in accordance with the recurrence schedule. + /// + public ConfigurationItemQuery SelectWorkflowManager(PersonQuery query) + { + query.FieldName = "workflowManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The workflow template that is used to periodically maintain the configuration item. + /// + public ConfigurationItemQuery SelectWorkflowTemplate(WorkflowTemplateQuery query) + { + query.FieldName = "workflowTemplate"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'ConfigurationItem' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -135,7 +255,7 @@ public ConfigurationItemQuery SelectUsers(PersonQuery query) ///
• Matches are case-sensitive.
/// /// - public ConfigurationItemQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ConfigurationItemQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemRelationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemRelationQuery.cs index 43a22e3..c4aeb18 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemRelationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ConfigurationItemRelationQuery.cs @@ -12,5 +12,15 @@ public ConfigurationItemRelationQuery() : base("", typeof(ConfigurationItemRelation), true) { } + + /// + /// Related configuration item. + /// + public ConfigurationItemRelationQuery SelectConfigurationItem(ConfigurationItemQuery query) + { + query.FieldName = "configurationItem"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ContractQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ContractQuery.cs index c2c4240..19c08df 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ContractQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ContractQuery.cs @@ -13,6 +13,16 @@ public ContractQuery() { } + /// + /// The account this record belongs to. + /// + public ContractQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// All configuration items of the contract. /// @@ -22,6 +32,16 @@ public ContractQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public ContractQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -31,6 +51,36 @@ public ContractQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The organization that pays for the agreement. + /// + public ContractQuery SelectCustomer(OrganizationQuery query) + { + query.FieldName = "customer"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The customer account this record belongs to. + /// + public ContractQuery SelectCustomerAccount(AccountQuery query) + { + query.FieldName = "customerAccount"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who represents the customer organization for the contract. + /// + public ContractQuery SelectCustomerRepresentative(PersonQuery query) + { + query.FieldName = "customerRepresentative"; + query.IsConnection = false; + return Select(query); + } + /// /// Invoices associated with this object. /// @@ -49,6 +99,36 @@ public ContractQuery SelectRemarksAttachments(AttachmentQuery query) return Select(query); } + /// + /// The organization that has provided the contract to the customer. + /// + public ContractQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who represents the supplier of the contract. + /// + public ContractQuery SelectSupplierContact(PersonQuery query) + { + query.FieldName = "supplierContact"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension that is linked to the record. + /// + public ContractQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Contract' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -81,7 +161,7 @@ public ContractQuery SelectRemarksAttachments(AttachmentQuery query) ///
• Matches are case-sensitive.
/// /// - public ContractQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ContractQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/CustomCollectionElementQuery.cs b/Scr/Sdk4me.GraphQL/Queries/CustomCollectionElementQuery.cs index 6510613..68879b4 100644 --- a/Scr/Sdk4me.GraphQL/Queries/CustomCollectionElementQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/CustomCollectionElementQuery.cs @@ -13,6 +13,36 @@ public CustomCollectionElementQuery() { } + /// + /// The account this record belongs to. + /// + public CustomCollectionElementQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Collection of this element. + /// + public CustomCollectionElementQuery SelectCustomCollection(CustomCollectionQuery query) + { + query.FieldName = "customCollection"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public CustomCollectionElementQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -72,7 +102,7 @@ public CustomCollectionElementQuery SelectTranslations(TranslationQuery query) ///
• Matches are case-sensitive.
/// /// - public CustomCollectionElementQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public CustomCollectionElementQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/CustomCollectionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/CustomCollectionQuery.cs index 70ed130..45c71e6 100644 --- a/Scr/Sdk4me.GraphQL/Queries/CustomCollectionQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/CustomCollectionQuery.cs @@ -13,6 +13,16 @@ public CustomCollectionQuery() { } + /// + /// The account this record belongs to. + /// + public CustomCollectionQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Elements of this custom collection. /// @@ -30,5 +40,15 @@ public CustomCollectionQuery SelectDescriptionAttachments(AttachmentQuery query) query.FieldName = "descriptionAttachments"; return Select(query); } + + /// + /// UI extension that is linked to the collection. + /// + public CustomCollectionQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/CustomFieldQuery.cs b/Scr/Sdk4me.GraphQL/Queries/CustomFieldQuery.cs new file mode 100644 index 0000000..b2f1158 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/CustomFieldQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The CustomField query. + /// + public class CustomFieldQuery : Query + { + /// + /// Initialize a new custom field query instance. + /// + public CustomFieldQuery() + : base("", typeof(CustomField), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/EffortClassChargeIDQuery.cs b/Scr/Sdk4me.GraphQL/Queries/EffortClassChargeIDQuery.cs index f915408..5556d51 100644 --- a/Scr/Sdk4me.GraphQL/Queries/EffortClassChargeIDQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/EffortClassChargeIDQuery.cs @@ -12,5 +12,15 @@ public EffortClassChargeIDQuery() : base("", typeof(EffortClassChargeID), true) { } + + /// + /// The effort class for which a chargeID is provided. + /// + public EffortClassChargeIDQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/EffortClassQuery.cs b/Scr/Sdk4me.GraphQL/Queries/EffortClassQuery.cs index a6cd3e7..ceb578a 100644 --- a/Scr/Sdk4me.GraphQL/Queries/EffortClassQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/EffortClassQuery.cs @@ -13,6 +13,16 @@ public EffortClassQuery() { } + /// + /// The account this record belongs to. + /// + public EffortClassQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Service offerings of this effort class. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/EffortClassRateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/EffortClassRateQuery.cs index 895c644..5a7bde8 100644 --- a/Scr/Sdk4me.GraphQL/Queries/EffortClassRateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/EffortClassRateQuery.cs @@ -12,5 +12,25 @@ public EffortClassRateQuery() : base("", typeof(EffortClassRate), true) { } + + /// + /// The effort class of the effort class rate. + /// + public EffortClassRateQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service offering of the effort class rate. + /// + public EffortClassRateQuery SelectServiceOffering(ServiceOfferingQuery query) + { + query.FieldName = "serviceOffering"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/FeedbackQuery.cs b/Scr/Sdk4me.GraphQL/Queries/FeedbackQuery.cs new file mode 100644 index 0000000..2408430 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/FeedbackQuery.cs @@ -0,0 +1,36 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The Feedback query. + /// + public class FeedbackQuery : Query + { + /// + /// Initialize a new feedback query instance. + /// + public FeedbackQuery() + : base("", typeof(Feedback), false) + { + } + + /// + /// URLs to capture feedback from the person who submitted the request. + /// + public FeedbackQuery SelectRequestedBy(FeedbackUrlsQuery query) + { + query.FieldName = "requestedBy"; + query.IsConnection = false; + return Select(query); + } + + /// + /// URLs to capture feedback from the person for whom the request was submitted, if that was not the submitter of the request. + /// + public FeedbackQuery SelectRequestedFor(FeedbackUrlsQuery query) + { + query.FieldName = "requestedFor"; + query.IsConnection = false; + return Select(query); + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/FeedbackUrlsQuery.cs b/Scr/Sdk4me.GraphQL/Queries/FeedbackUrlsQuery.cs new file mode 100644 index 0000000..9dfdc2e --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/FeedbackUrlsQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The FeedbackUrls query. + /// + public class FeedbackUrlsQuery : Query + { + /// + /// Initialize a new feedback urls query instance. + /// + public FeedbackUrlsQuery() + : base("", typeof(FeedbackUrls), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/FirstLineSupportAgreementQuery.cs b/Scr/Sdk4me.GraphQL/Queries/FirstLineSupportAgreementQuery.cs index a6d4a24..1c28598 100644 --- a/Scr/Sdk4me.GraphQL/Queries/FirstLineSupportAgreementQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/FirstLineSupportAgreementQuery.cs @@ -13,6 +13,16 @@ public FirstLineSupportAgreementQuery() { } + /// + /// The account this record belongs to. + /// + public FirstLineSupportAgreementQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Charges field. /// @@ -22,6 +32,36 @@ public FirstLineSupportAgreementQuery SelectChargesAttachments(AttachmentQuery q return Select(query); } + /// + /// The organization that pays for the agreement. + /// + public FirstLineSupportAgreementQuery SelectCustomer(OrganizationQuery query) + { + query.FieldName = "customer"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The customer account this record belongs to. + /// + public FirstLineSupportAgreementQuery SelectCustomerAccount(AccountQuery query) + { + query.FieldName = "customerAccount"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who represents the customer organization for the first line support agreement. + /// + public FirstLineSupportAgreementQuery SelectCustomerRepresentative(PersonQuery query) + { + query.FieldName = "customerRepresentative"; + query.IsConnection = false; + return Select(query); + } + /// /// Invoices associated with this object. /// @@ -31,6 +71,16 @@ public FirstLineSupportAgreementQuery SelectInvoices(InvoiceQuery query) return Select(query); } + /// + /// Organization that provides the first line support agreement. + /// + public FirstLineSupportAgreementQuery SelectProvider(OrganizationQuery query) + { + query.FieldName = "provider"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Remarks field. /// @@ -40,6 +90,26 @@ public FirstLineSupportAgreementQuery SelectRemarksAttachments(AttachmentQuery q return Select(query); } + /// + /// The specific team within the first line support provider organization that provides first line support for the users covered by the first line support agreement. + /// + public FirstLineSupportAgreementQuery SelectServiceDeskTeam(TeamQuery query) + { + query.FieldName = "serviceDeskTeam"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Calendar that defines the support hours during which the service desk team can be contacted for first line support. + /// + public FirstLineSupportAgreementQuery SelectSupportHours(CalendarQuery query) + { + query.FieldName = "supportHours"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Target details field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/HasLifeCycleStateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/HasLifeCycleStateQuery.cs new file mode 100644 index 0000000..6b97c03 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/HasLifeCycleStateQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The HasLifeCycleState query. + /// + public class HasLifeCycleStateQuery : Query + { + /// + /// Initialize a new has life cycle state query instance. + /// + public HasLifeCycleStateQuery() + : base("", typeof(HasLifeCycleState), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/HolidayQuery.cs b/Scr/Sdk4me.GraphQL/Queries/HolidayQuery.cs index 1ecfe02..fd10b44 100644 --- a/Scr/Sdk4me.GraphQL/Queries/HolidayQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/HolidayQuery.cs @@ -13,6 +13,16 @@ public HolidayQuery() { } + /// + /// The account this record belongs to. + /// + public HolidayQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Calendars of the holiday. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/InvoiceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/InvoiceQuery.cs index fc2a768..0ca246d 100644 --- a/Scr/Sdk4me.GraphQL/Queries/InvoiceQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/InvoiceQuery.cs @@ -13,6 +13,16 @@ public InvoiceQuery() { } + /// + /// The account this record belongs to. + /// + public InvoiceQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// The configuration items linked to this invoice. /// @@ -22,6 +32,36 @@ public InvoiceQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// The contract linked to this invoice. + /// + public InvoiceQuery SelectContract(ContractQuery query) + { + query.FieldName = "contract"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The first line support agreement linked to this invoice. + /// + public InvoiceQuery SelectFlsa(FirstLineSupportAgreementQuery query) + { + query.FieldName = "flsa"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The project linked to this invoice. + /// + public InvoiceQuery SelectProject(ProjectQuery query) + { + query.FieldName = "project"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Remarks field. /// @@ -30,5 +70,45 @@ public InvoiceQuery SelectRemarksAttachments(AttachmentQuery query) query.FieldName = "remarksAttachments"; return Select(query); } + + /// + /// The service that covers this invoice. + /// + public InvoiceQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service level agreement linked to this invoice. + /// + public InvoiceQuery SelectSla(ServiceLevelAgreementQuery query) + { + query.FieldName = "sla"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization from which the invoice was received. + /// + public InvoiceQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The workflow linked to this invoice. + /// + public InvoiceQuery SelectWorkflow(WorkflowQuery query) + { + query.FieldName = "workflow"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleQuery.cs b/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleQuery.cs index 4421c33..c37972d 100644 --- a/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleQuery.cs @@ -13,6 +13,36 @@ public KnowledgeArticleQuery() { } + /// + /// The account this record belongs to. + /// + public KnowledgeArticleQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who created the knowledge article. + /// + public KnowledgeArticleQuery SelectCreatedBy(PersonQuery query) + { + query.FieldName = "createdBy"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public KnowledgeArticleQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -49,6 +79,16 @@ public KnowledgeArticleQuery SelectRequests(RequestQuery query) return Select(query); } + /// + /// Service for which the knowledge article is made available. + /// + public KnowledgeArticleQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Service instances linked to this knowledge article. /// @@ -58,6 +98,16 @@ public KnowledgeArticleQuery SelectServiceInstances(ServiceInstanceQuery query) return Select(query); } + /// + /// The knowledge article template that this knowledge article is based on. + /// + public KnowledgeArticleQuery SelectTemplate(KnowledgeArticleTemplateQuery query) + { + query.FieldName = "template"; + query.IsConnection = false; + return Select(query); + } + /// /// Translations associated with this object. /// @@ -67,6 +117,16 @@ public KnowledgeArticleQuery SelectTranslations(TranslationQuery query) return Select(query); } + /// + /// The person who last updated the knowledge article. + /// + public KnowledgeArticleQuery SelectUpdatedBy(PersonQuery query) + { + query.FieldName = "updatedBy"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'KnowledgeArticle' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -99,7 +159,7 @@ public KnowledgeArticleQuery SelectTranslations(TranslationQuery query) ///
• Matches are case-sensitive.
/// /// - public KnowledgeArticleQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public KnowledgeArticleQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleTemplateQuery.cs index b8843f0..68cdf2a 100644 --- a/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleTemplateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/KnowledgeArticleTemplateQuery.cs @@ -13,6 +13,26 @@ public KnowledgeArticleTemplateQuery() { } + /// + /// The account this record belongs to. + /// + public KnowledgeArticleTemplateQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Service that is applied to knowledge articles using this template. + /// + public KnowledgeArticleTemplateQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Service instances that are applied to knowledge articles using this template. /// @@ -21,5 +41,15 @@ public KnowledgeArticleTemplateQuery SelectServiceInstances(ServiceInstanceQuery query.FieldName = "serviceInstances"; return Select(query); } + + /// + /// The UI extension that is applied to knowledge articles using this template. + /// + public KnowledgeArticleTemplateQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/MeQuery.cs b/Scr/Sdk4me.GraphQL/Queries/MeQuery.cs index 18aaaa6..e44c7be 100644 --- a/Scr/Sdk4me.GraphQL/Queries/MeQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/MeQuery.cs @@ -13,6 +13,16 @@ public MeQuery() { } + /// + /// The account this record belongs to. + /// + public MeQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Addresses of the record. /// @@ -49,6 +59,16 @@ public MeQuery SelectContacts(ContactQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public MeQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -67,6 +87,26 @@ public MeQuery SelectInformationAttachments(AttachmentQuery query) return Select(query); } + /// + /// The manager or supervisor to whom the person reports. + /// + public MeQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization for which the person works as an employee or long-term contractor. + /// + public MeQuery SelectOrganization(OrganizationQuery query) + { + query.FieldName = "organization"; + query.IsConnection = false; + return Select(query); + } + /// /// Out of office periods for this person. /// @@ -85,6 +125,16 @@ public MeQuery SelectPermissions(PermissionQuery query) return Select(query); } + /// + /// Where the person is stationed. + /// + public MeQuery SelectSite(SiteQuery query) + { + query.FieldName = "site"; + query.IsConnection = false; + return Select(query); + } + /// /// Skill pools this person belongs to. /// @@ -102,5 +152,25 @@ public MeQuery SelectTeams(TeamQuery query) query.FieldName = "teams"; return Select(query); } + + /// + /// UI extension that is linked to the record. + /// + public MeQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Calendar that represents the work hours of the person. + /// + public MeQuery SelectWorkHours(CalendarQuery query) + { + query.FieldName = "workHours"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/NoteQuery.cs b/Scr/Sdk4me.GraphQL/Queries/NoteQuery.cs index d5871e3..3e60f6c 100644 --- a/Scr/Sdk4me.GraphQL/Queries/NoteQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/NoteQuery.cs @@ -13,6 +13,26 @@ public NoteQuery() { } + /// + /// The account. + /// + public NoteQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Person who added this note. + /// + public NoteQuery SelectPerson(PersonQuery query) + { + query.FieldName = "person"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Text field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/OrganizationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/OrganizationQuery.cs index 3eb288b..80ea5a7 100644 --- a/Scr/Sdk4me.GraphQL/Queries/OrganizationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/OrganizationQuery.cs @@ -13,6 +13,16 @@ public OrganizationQuery() { } + /// + /// The account this record belongs to. + /// + public OrganizationQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Addresses of the record. /// @@ -22,6 +32,16 @@ public OrganizationQuery SelectAddresses(AddressQuery query) return Select(query); } + /// + /// Refers to itself if the organization is a business unit, or refers to the business unit that the organization belongs to. + /// + public OrganizationQuery SelectBusinessUnitOrganization(OrganizationQuery query) + { + query.FieldName = "businessUnitOrganization"; + query.IsConnection = false; + return Select(query); + } + /// /// Child organizations of this organization, i.e. organizations that have this organization as their parent. /// @@ -49,6 +69,16 @@ public OrganizationQuery SelectContracts(ContractQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public OrganizationQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -58,6 +88,36 @@ public OrganizationQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The manager of the organization. + /// + public OrganizationQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Refers to the order template that is used for purchases of people defined in this organization or its descendants. + /// + public OrganizationQuery SelectOrderTemplate(RequestTemplateQuery query) + { + query.FieldName = "orderTemplate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization's parent organization. + /// + public OrganizationQuery SelectParent(OrganizationQuery query) + { + query.FieldName = "parent"; + query.IsConnection = false; + return Select(query); + } + /// /// People of this organization. /// @@ -94,6 +154,16 @@ public OrganizationQuery SelectServiceLevelAgreements(ServiceLevelAgreementQuery return Select(query); } + /// + /// The person who acts as the substitute of the organization's manager. + /// + public OrganizationQuery SelectSubstitute(PersonQuery query) + { + query.FieldName = "substitute"; + query.IsConnection = false; + return Select(query); + } + /// /// Time allocations of this organization. /// @@ -103,6 +173,16 @@ public OrganizationQuery SelectTimeAllocations(TimeAllocationQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public OrganizationQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Organization' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -135,7 +215,7 @@ public OrganizationQuery SelectTimeAllocations(TimeAllocationQuery query) ///
• Matches are case-sensitive.
/// /// - public OrganizationQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public OrganizationQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/OutOfOfficePeriodQuery.cs b/Scr/Sdk4me.GraphQL/Queries/OutOfOfficePeriodQuery.cs index c2b01b9..33027bb 100644 --- a/Scr/Sdk4me.GraphQL/Queries/OutOfOfficePeriodQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/OutOfOfficePeriodQuery.cs @@ -12,5 +12,55 @@ public OutOfOfficePeriodQuery() : base("outOfOfficePeriods", typeof(OutOfOfficePeriod), true) { } + + /// + /// The account this record belongs to. + /// + public OutOfOfficePeriodQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is selected as the approval delegate for the out of office period. + /// + public OutOfOfficePeriodQuery SelectApprovalDelegate(PersonQuery query) + { + query.FieldName = "approvalDelegate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Effort class field is used to generate time entries for the out of office period. This field is applicable if the timesheet settings linked to the person's organization has one or more effort classes. + /// + public OutOfOfficePeriodQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is out of office. + /// + public OutOfOfficePeriodQuery SelectPerson(PersonQuery query) + { + query.FieldName = "person"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to generate time entries for the out of office period. Only the time allocations without service and customer that are linked to the person's organization can be selected. This field is required if at least one time allocation exists that meets those conditions. + /// + public OutOfOfficePeriodQuery SelectTimeAllocation(TimeAllocationQuery query) + { + query.FieldName = "timeAllocation"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ParentServiceInstanceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ParentServiceInstanceQuery.cs index c0e02e0..fcab813 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ParentServiceInstanceQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ParentServiceInstanceQuery.cs @@ -12,5 +12,15 @@ public ParentServiceInstanceQuery() : base("", typeof(ParentServiceInstance), true) { } + + /// + /// Service instance consuming the service instance of the service level agreement. + /// + public ParentServiceInstanceQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/PdfDesignQuery.cs b/Scr/Sdk4me.GraphQL/Queries/PdfDesignQuery.cs index d9cebba..fb3c3b9 100644 --- a/Scr/Sdk4me.GraphQL/Queries/PdfDesignQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/PdfDesignQuery.cs @@ -13,6 +13,16 @@ public PdfDesignQuery() { } + /// + /// The account this record belongs to. + /// + public PdfDesignQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Translations associated with this object. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/PeriodQuery.cs b/Scr/Sdk4me.GraphQL/Queries/PeriodQuery.cs new file mode 100644 index 0000000..34496a4 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/PeriodQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The Period query. + /// + public class PeriodQuery : Query + { + /// + /// Initialize a new period query instance. + /// + public PeriodQuery() + : base("", typeof(Period), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/PermissionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/PermissionQuery.cs index f02a5d1..c0b4a03 100644 --- a/Scr/Sdk4me.GraphQL/Queries/PermissionQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/PermissionQuery.cs @@ -12,5 +12,15 @@ public PermissionQuery() : base("", typeof(Permission), true) { } + + /// + /// Account for which the person has permissions. + /// + public PermissionQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/PersonQuery.cs b/Scr/Sdk4me.GraphQL/Queries/PersonQuery.cs index 5b61927..c920bd2 100644 --- a/Scr/Sdk4me.GraphQL/Queries/PersonQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/PersonQuery.cs @@ -13,6 +13,16 @@ public PersonQuery() { } + /// + /// The account this record belongs to. + /// + public PersonQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Addresses of the record. /// @@ -49,6 +59,16 @@ public PersonQuery SelectContacts(ContactQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public PersonQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -67,6 +87,26 @@ public PersonQuery SelectInformationAttachments(AttachmentQuery query) return Select(query); } + /// + /// The manager or supervisor to whom the person reports. + /// + public PersonQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization for which the person works as an employee or long-term contractor. + /// + public PersonQuery SelectOrganization(OrganizationQuery query) + { + query.FieldName = "organization"; + query.IsConnection = false; + return Select(query); + } + /// /// Out of office periods for this person. /// @@ -85,6 +125,16 @@ public PersonQuery SelectPermissions(PermissionQuery query) return Select(query); } + /// + /// Where the person is stationed. + /// + public PersonQuery SelectSite(SiteQuery query) + { + query.FieldName = "site"; + query.IsConnection = false; + return Select(query); + } + /// /// Skill pools this person belongs to. /// @@ -103,6 +153,26 @@ public PersonQuery SelectTeams(TeamQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public PersonQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Calendar that represents the work hours of the person. + /// + public PersonQuery SelectWorkHours(CalendarQuery query) + { + query.FieldName = "workHours"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Person' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -135,7 +205,7 @@ public PersonQuery SelectTeams(TeamQuery query) ///
• Matches are case-sensitive.
/// /// - public PersonQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public PersonQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProblemQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProblemQuery.cs index e99a040..e3adc13 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProblemQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProblemQuery.cs @@ -13,6 +13,36 @@ public ProblemQuery() { } + /// + /// The account this record belongs to. + /// + public ProblemQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Board this item is placed on. + /// + public ProblemQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Column this item is placed in. + /// + public ProblemQuery SelectAgileBoardColumn(AgileBoardColumnQuery query) + { + query.FieldName = "agileBoardColumn"; + query.IsConnection = false; + return Select(query); + } + /// /// Configuration items of this problem. /// @@ -22,6 +52,16 @@ public ProblemQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public ProblemQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -31,6 +71,36 @@ public ProblemQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The knowledge article which instructions should be followed to resolve incidents caused by this problem until a structural solution has been implemented. + /// + public ProblemQuery SelectKnowledgeArticle(KnowledgeArticleQuery query) + { + query.FieldName = "knowledgeArticle"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Person who is responsible for coordinating the problem through root cause analysis, the proposal of a structural solution and ultimately its closure. + /// + public ProblemQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person to whom the problem is to be assigned. + /// + public ProblemQuery SelectMember(PersonQuery query) + { + query.FieldName = "member"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -40,6 +110,26 @@ public ProblemQuery SelectNotes(NoteQuery query) return Select(query); } + /// + /// Product backlog this item is placed on. + /// + public ProblemQuery SelectProductBacklog(ProductBacklogQuery query) + { + query.FieldName = "productBacklog"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to link the problem to a project. + /// + public ProblemQuery SelectProject(ProjectQuery query) + { + query.FieldName = "project"; + query.IsConnection = false; + return Select(query); + } + /// /// Requests of this problem. /// @@ -49,6 +139,16 @@ public ProblemQuery SelectRequests(RequestQuery query) return Select(query); } + /// + /// The service in which instance(s) the problem resides. + /// + public ProblemQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Service instances of this problem. /// @@ -67,6 +167,26 @@ public ProblemQuery SelectSprintBacklogItems(SprintBacklogItemQuery query) return Select(query); } + /// + /// The supplier organization that has been asked for a solution to the problem. + /// + public ProblemQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team to which the problem is to be assigned. After a service has been selected in the Service field, the support team of the service is automatically selected in this field. + /// + public ProblemQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + /// /// Time entries for this record. /// @@ -76,6 +196,16 @@ public ProblemQuery SelectTimeEntries(TimeEntryQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public ProblemQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Workaround field. /// @@ -85,6 +215,16 @@ public ProblemQuery SelectWorkaroundAttachments(AttachmentQuery query) return Select(query); } + /// + /// The workflow that will implement the proposed permanent solution for the problem. + /// + public ProblemQuery SelectWorkflow(WorkflowQuery query) + { + query.FieldName = "workflow"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Problem' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -117,7 +257,7 @@ public ProblemQuery SelectWorkaroundAttachments(AttachmentQuery query) ///
• Matches are case-sensitive.
/// /// - public ProblemQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ProblemQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProductBacklogItemQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProductBacklogItemQuery.cs index 8f0adbf..e43b439 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProductBacklogItemQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProductBacklogItemQuery.cs @@ -12,5 +12,15 @@ public ProductBacklogItemQuery() : base("", typeof(ProductBacklogItem), true) { } + + /// + /// Product backlog this item is placed on. + /// + public ProductBacklogItemQuery SelectProductBacklog(ProductBacklogQuery query) + { + query.FieldName = "productBacklog"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProductBacklogQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProductBacklogQuery.cs index ec49b8e..137a55b 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProductBacklogQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProductBacklogQuery.cs @@ -13,6 +13,16 @@ public ProductBacklogQuery() { } + /// + /// The account this record belongs to. + /// + public ProductBacklogQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the description field. /// @@ -31,6 +41,16 @@ public ProductBacklogQuery SelectItems(ProductBacklogItemQuery query) return Select(query); } + /// + /// Person responsible for maximizing the value of the work done based on this product backlog. + /// + public ProductBacklogQuery SelectProductOwner(PersonQuery query) + { + query.FieldName = "productOwner"; + query.IsConnection = false; + return Select(query); + } + /// /// Scrum workspaces taking items from this backlog when planning their sprints. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ProductCategoryQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProductCategoryQuery.cs index 3044045..fafe0b9 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProductCategoryQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProductCategoryQuery.cs @@ -13,6 +13,16 @@ public ProductCategoryQuery() { } + /// + /// The account this record belongs to. + /// + public ProductCategoryQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Products in this category. /// @@ -30,5 +40,15 @@ public ProductCategoryQuery SelectTranslations(TranslationQuery query) query.FieldName = "translations"; return Select(query); } + + /// + /// UI extension that is linked to the product category. + /// + public ProductCategoryQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProductQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProductQuery.cs index 68a8930..e118c3e 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProductQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProductQuery.cs @@ -13,6 +13,16 @@ public ProductQuery() { } + /// + /// The account this record belongs to. + /// + public ProductQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Configuration items of the product. /// @@ -22,6 +32,16 @@ public ProductQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public ProductQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -31,6 +51,36 @@ public ProductQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The internal organization which budget is normally used to obtain the product. + /// + public ProductQuery SelectFinancialOwner(OrganizationQuery query) + { + query.FieldName = "financialOwner"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The appropriate product category for the product. + /// + public ProductQuery SelectProductCategory(ProductCategoryQuery query) + { + query.FieldName = "productCategory"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Recurrence for maintenance of configuration items created from the product. + /// + public ProductQuery SelectRecurrence(RecurrenceTemplateQuery query) + { + query.FieldName = "recurrence"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Remarks field. /// @@ -40,6 +90,66 @@ public ProductQuery SelectRemarksAttachments(AttachmentQuery query) return Select(query); } + /// + /// The Service which Service Instances would typically include the product. + /// + public ProductQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization from which the product is typically obtained. If the product is developed internally, select the internal organization that develops it. Note that a lease company should be selected in this field if the product is normally leased. + /// + public ProductQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team responsible for maintaining the product's information in the configuration management database (CMDB). + /// + public ProductQuery SelectSupportTeam(TeamQuery query) + { + query.FieldName = "supportTeam"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension that is to be added to the configuration items that are based on the product. + /// + public ProductQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who will be responsible for coordinating the workflows that will be generated automatically in accordance with the recurrence schedule. + /// + public ProductQuery SelectWorkflowManager(PersonQuery query) + { + query.FieldName = "workflowManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The workflow template that is used to periodically maintain configuration items created from the product. + /// + public ProductQuery SelectWorkflowTemplate(WorkflowTemplateQuery query) + { + query.FieldName = "workflowTemplate"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Product' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -72,7 +182,7 @@ public ProductQuery SelectRemarksAttachments(AttachmentQuery query) ///
• Matches are case-sensitive.
/// /// - public ProductQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ProductQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectCategoryQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectCategoryQuery.cs index bcecad6..8c26038 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectCategoryQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectCategoryQuery.cs @@ -13,6 +13,16 @@ public ProjectCategoryQuery() { } + /// + /// The account this record belongs to. + /// + public ProjectCategoryQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Information field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectQuery.cs index dc20af6..3d85e06 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectQuery.cs @@ -13,6 +13,26 @@ public ProjectQuery() { } + /// + /// The account this record belongs to. + /// + public ProjectQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public ProjectQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -22,6 +42,16 @@ public ProjectQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// Used to select the organization for which the project is to be implemented. + /// + public ProjectQuery SelectCustomer(OrganizationQuery query) + { + query.FieldName = "customer"; + query.IsConnection = false; + return Select(query); + } + /// /// Invoices associated with this object. /// @@ -31,6 +61,16 @@ public ProjectQuery SelectInvoices(InvoiceQuery query) return Select(query); } + /// + /// The person who is responsible for coordinating the implementation of the project. + /// + public ProjectQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -76,6 +116,16 @@ public ProjectQuery SelectRisks(RiskQuery query) return Select(query); } + /// + /// The service for which the project will be implemented. + /// + public ProjectQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Tasks of the project. /// @@ -85,6 +135,26 @@ public ProjectQuery SelectTasks(ProjectTaskQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public ProjectQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the work hours that are to be used to calculate the anticipated assignment and completion target for the tasks of the project. + /// + public ProjectQuery SelectWorkHours(CalendarQuery query) + { + query.FieldName = "workHours"; + query.IsConnection = false; + return Select(query); + } + /// /// Workflows of the project. /// @@ -126,7 +196,7 @@ public ProjectQuery SelectWorkflows(WorkflowQuery query) ///
• Matches are case-sensitive.
/// /// - public ProjectQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ProjectQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectRiskLevelQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectRiskLevelQuery.cs index f7e67ff..ed18a3a 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectRiskLevelQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectRiskLevelQuery.cs @@ -13,6 +13,16 @@ public ProjectRiskLevelQuery() { } + /// + /// The account this record belongs to. + /// + public ProjectRiskLevelQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Information field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskAssignmentQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskAssignmentQuery.cs index 46ce4d1..3822207 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskAssignmentQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskAssignmentQuery.cs @@ -12,5 +12,15 @@ public ProjectTaskAssignmentQuery() : base("", typeof(ProjectTaskAssignment), true) { } + + /// + /// The person who is selected as the assignee for the assignment. + /// + public ProjectTaskAssignmentQuery SelectAssignee(PersonQuery query) + { + query.FieldName = "assignee"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskQuery.cs index e719691..cef2bc9 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskQuery.cs @@ -13,6 +13,36 @@ public ProjectTaskQuery() { } + /// + /// The account this record belongs to. + /// + public ProjectTaskQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Board this item is placed on. + /// + public ProjectTaskQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Column this item is placed in. + /// + public ProjectTaskQuery SelectAgileBoardColumn(AgileBoardColumnQuery query) + { + query.FieldName = "agileBoardColumn"; + query.IsConnection = false; + return Select(query); + } + /// /// Assignments of the project task. /// @@ -31,6 +61,16 @@ public ProjectTaskQuery SelectAutomationRules(AutomationRuleQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public ProjectTaskQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -58,6 +98,26 @@ public ProjectTaskQuery SelectNotes(NoteQuery query) return Select(query); } + /// + /// The PDF design associated with the task. + /// + public ProjectTaskQuery SelectPdfDesign(PdfDesignQuery query) + { + query.FieldName = "pdfDesign"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The phase of the project to which the project task belongs. + /// + public ProjectTaskQuery SelectPhase(ProjectPhaseQuery query) + { + query.FieldName = "phase"; + query.IsConnection = false; + return Select(query); + } + /// /// Predecessors of the project task. /// @@ -67,6 +127,26 @@ public ProjectTaskQuery SelectPredecessors(ProjectTaskQuery query) return Select(query); } + /// + /// The project to which the project task belongs. + /// + public ProjectTaskQuery SelectProject(ProjectQuery query) + { + query.FieldName = "project"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Skill pool that represents the specific expertise needed to complete the task. + /// + public ProjectTaskQuery SelectSkillPool(SkillPoolQuery query) + { + query.FieldName = "skillPool"; + query.IsConnection = false; + return Select(query); + } + /// /// Sprint backlog items associated with this object. /// @@ -85,6 +165,36 @@ public ProjectTaskQuery SelectSuccessors(ProjectTaskQuery query) return Select(query); } + /// + /// The supplier organization that has been asked to assist with the completion of the project task. + /// + public ProjectTaskQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team to which the project task is to be assigned. + /// + public ProjectTaskQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The project task template that was used to register the project task. + /// + public ProjectTaskQuery SelectTemplate(ProjectTaskTemplateQuery query) + { + query.FieldName = "template"; + query.IsConnection = false; + return Select(query); + } + /// /// Time entries for this record. /// @@ -126,7 +236,7 @@ public ProjectTaskQuery SelectTimeEntries(TimeEntryQuery query) ///
• Matches are case-sensitive.
/// /// - public ProjectTaskQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ProjectTaskQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateAssignmentQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateAssignmentQuery.cs index 9be3564..8e9de88 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateAssignmentQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateAssignmentQuery.cs @@ -12,5 +12,15 @@ public ProjectTaskTemplateAssignmentQuery() : base("", typeof(ProjectTaskTemplateAssignment), true) { } + + /// + /// The person who is selected as the assignee for the project task template assignment. + /// + public ProjectTaskTemplateAssignmentQuery SelectAssignee(PersonQuery query) + { + query.FieldName = "assignee"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateQuery.cs index 4d8deff..7fb3d5f 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateQuery.cs @@ -13,6 +13,16 @@ public ProjectTaskTemplateQuery() { } + /// + /// The account this record belongs to. + /// + public ProjectTaskTemplateQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Assignments of the project task template. /// @@ -31,6 +41,16 @@ public ProjectTaskTemplateQuery SelectAutomationRules(AutomationRuleQuery query) return Select(query); } + /// + /// The effort class that is selected by default, when someone registers time on a project task created based on the template. + /// + public ProjectTaskTemplateQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Instructions field. /// @@ -49,6 +69,16 @@ public ProjectTaskTemplateQuery SelectNoteAttachments(AttachmentQuery query) return Select(query); } + /// + /// The PDF design that needs to be copied to the PDF design field of a new project task when it is being created based on the template. + /// + public ProjectTaskTemplateQuery SelectPdfDesign(PdfDesignQuery query) + { + query.FieldName = "pdfDesign"; + query.IsConnection = false; + return Select(query); + } + /// /// Project templates that include the project task template. /// @@ -58,6 +88,26 @@ public ProjectTaskTemplateQuery SelectProjectTemplates(ProjectTemplateQuery quer return Select(query); } + /// + /// The skill pool that should be selected in the Skill pool field of a new project task when it is being created based on the template. + /// + public ProjectTaskTemplateQuery SelectSkillPool(SkillPoolQuery query) + { + query.FieldName = "skillPool"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The supplier organization that should be selected in the Supplier field of a new project task when it is being created based on the template. + /// + public ProjectTaskTemplateQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + /// /// Project tasks created using the project task template. /// @@ -66,5 +116,25 @@ public ProjectTaskTemplateQuery SelectTasks(ProjectTaskQuery query) query.FieldName = "tasks"; return Select(query); } + + /// + /// The Team that should be selected in the Team field of a new project task when it is being created based on the template. + /// + public ProjectTaskTemplateQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension that is to be added to a new project task when it is being created based on the template. + /// + public ProjectTaskTemplateQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateRelationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateRelationQuery.cs index f1685b4..9eb62f2 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateRelationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectTaskTemplateRelationQuery.cs @@ -21,5 +21,25 @@ public ProjectTaskTemplateRelationQuery SelectAutomationRules(AutomationRuleQuer query.FieldName = "automationRules"; return Select(query); } + + /// + /// The phase of the project template that the project task template is a part of. + /// + public ProjectTaskTemplateRelationQuery SelectPhase(ProjectTemplatePhaseQuery query) + { + query.FieldName = "phase"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The project task template that is related to the project template. + /// + public ProjectTaskTemplateRelationQuery SelectTaskTemplate(ProjectTaskTemplateQuery query) + { + query.FieldName = "taskTemplate"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ProjectTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProjectTemplateQuery.cs index 31eda55..7be61a8 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ProjectTemplateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ProjectTemplateQuery.cs @@ -13,6 +13,16 @@ public ProjectTemplateQuery() { } + /// + /// The account this record belongs to. + /// + public ProjectTemplateQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Phases of the project template. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ProviderShopArticleQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProviderShopArticleQuery.cs new file mode 100644 index 0000000..ce366eb --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/ProviderShopArticleQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The ProviderShopArticle query. + /// + public class ProviderShopArticleQuery : Query + { + /// + /// Initialize a new provider shop article query instance. + /// + public ProviderShopArticleQuery() + : base("", typeof(ProviderShopArticle), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/ProviderShopOrderLineQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ProviderShopOrderLineQuery.cs new file mode 100644 index 0000000..02d4fc2 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/ProviderShopOrderLineQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The ProviderShopOrderLine query. + /// + public class ProviderShopOrderLineQuery : Query + { + /// + /// Initialize a new provider shop order line query instance. + /// + public ProviderShopOrderLineQuery() + : base("", typeof(ProviderShopOrderLine), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/RecurrenceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/RecurrenceQuery.cs new file mode 100644 index 0000000..b50df71 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/RecurrenceQuery.cs @@ -0,0 +1,26 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The Recurrence query. + /// + public class RecurrenceQuery : Query + { + /// + /// Initialize a new recurrence query instance. + /// + public RecurrenceQuery() + : base("", typeof(Recurrence), false) + { + } + + /// + /// Select a calendar to skip occurrences of the recurrence during off-hours and holidays. + /// + public RecurrenceQuery SelectCalendar(CalendarQuery query) + { + query.FieldName = "calendar"; + query.IsConnection = false; + return Select(query); + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/RecurrenceTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/RecurrenceTemplateQuery.cs new file mode 100644 index 0000000..7e06590 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/RecurrenceTemplateQuery.cs @@ -0,0 +1,26 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The RecurrenceTemplate query. + /// + public class RecurrenceTemplateQuery : Query + { + /// + /// Initialize a new recurrence template query instance. + /// + public RecurrenceTemplateQuery() + : base("", typeof(RecurrenceTemplate), false) + { + } + + /// + /// Select a calendar to skip occurrences of the recurrence during off-hours and holidays. + /// + public RecurrenceTemplateQuery SelectCalendar(CalendarQuery query) + { + query.FieldName = "calendar"; + query.IsConnection = false; + return Select(query); + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/ReleaseQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ReleaseQuery.cs index acce544..0c28ffc 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ReleaseQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ReleaseQuery.cs @@ -13,6 +13,26 @@ public ReleaseQuery() { } + /// + /// The account this record belongs to. + /// + public ReleaseQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public ReleaseQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -22,6 +42,16 @@ public ReleaseQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The person who is responsible for coordinating the implementation of the release. The person must have the release Manager role. + /// + public ReleaseQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -31,6 +61,16 @@ public ReleaseQuery SelectNotes(NoteQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public ReleaseQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// /// Workflows of the release. /// @@ -72,7 +112,7 @@ public ReleaseQuery SelectWorkflows(WorkflowQuery query) ///
• Matches are case-sensitive.
/// /// - public ReleaseQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ReleaseQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/RequestQuery.cs b/Scr/Sdk4me.GraphQL/Queries/RequestQuery.cs index 7991287..fee9453 100644 --- a/Scr/Sdk4me.GraphQL/Queries/RequestQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/RequestQuery.cs @@ -13,6 +13,16 @@ public RequestQuery() { } + /// + /// The account this record belongs to. + /// + public RequestQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Affected SLAs of the request. /// @@ -22,6 +32,26 @@ public RequestQuery SelectAffectedSlas(AffectedSlaQuery query) return Select(query); } + /// + /// Board this item is placed on. + /// + public RequestQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Column this item is placed in. + /// + public RequestQuery SelectAgileBoardColumn(AgileBoardColumnQuery query) + { + query.FieldName = "agileBoardColumn"; + query.IsConnection = false; + return Select(query); + } + /// /// Automation rules associated with this record. /// @@ -40,6 +70,26 @@ public RequestQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// Automatically set to the person who submitted the request. + /// + public RequestQuery SelectCreatedBy(PersonQuery query) + { + query.FieldName = "createdBy"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public RequestQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -49,6 +99,26 @@ public RequestQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The satisfiedUrl and the dissatisfiedUrl of the requestedFor. In case the requestedBy is different form the requestedFor, the satisfaction link of the requestedBy are also included. Feedback is null in case no feedback for the request can be provided at this time. + /// + public RequestQuery SelectFeedback(FeedbackQuery query) + { + query.FieldName = "feedback"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request group that is used to group the requests that have been submitted for the resolution of exactly the same incident, for the implementation of exactly the same change, for the provision of exactly the same information, etc. + /// + public RequestQuery SelectGroupedInto(RequestQuery query) + { + query.FieldName = "groupedInto"; + query.IsConnection = false; + return Select(query); + } + /// /// Requests that are grouped into this request group. /// @@ -58,6 +128,16 @@ public RequestQuery SelectGroupedRequests(RequestQuery query) return Select(query); } + /// + /// Automatically set to the latest knowledge article that was applied to the request. + /// + public RequestQuery SelectKnowledgeArticle(KnowledgeArticleQuery query) + { + query.FieldName = "knowledgeArticle"; + query.IsConnection = false; + return Select(query); + } + /// /// Knowledge articles of the current request account. /// @@ -67,6 +147,16 @@ public RequestQuery SelectKnowledgeArticles(KnowledgeArticleQuery query) return Select(query); } + /// + /// The person to whom the request is to be assigned. + /// + public RequestQuery SelectMember(PersonQuery query) + { + query.FieldName = "member"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -76,6 +166,76 @@ public RequestQuery SelectNotes(NoteQuery query) return Select(query); } + /// + /// Automatically set when the request is saved for the first time to the organization that the person, who is selected in the Requested for field, belongs. + /// + public RequestQuery SelectOrganization(OrganizationQuery query) + { + query.FieldName = "organization"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to link the request to a problem. + /// + public RequestQuery SelectProblem(ProblemQuery query) + { + query.FieldName = "problem"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Product backlog this item is placed on. + /// + public RequestQuery SelectProductBacklog(ProductBacklogQuery query) + { + query.FieldName = "productBacklog"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to link the request to a project. + /// + public RequestQuery SelectProject(ProjectQuery query) + { + query.FieldName = "project"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who submitted the request. + /// + public RequestQuery SelectRequestedBy(PersonQuery query) + { + query.FieldName = "requestedBy"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person for whom the request was submitted. The person selected in the Requested by field is automatically selected in this field, but another person can be selected if the request is submitted for another person. + /// + public RequestQuery SelectRequestedFor(PersonQuery query) + { + query.FieldName = "requestedFor"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service instance in which the cause of the incident resides, for which the change is requested, or about which information is needed. + /// + public RequestQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } + /// /// Sprint backlog items associated with this object. /// @@ -85,6 +245,46 @@ public RequestQuery SelectSprintBacklogItems(SprintBacklogItemQuery query) return Select(query); } + /// + /// The supplier organization that has been asked to assist with the request. The supplier organization is automatically selected in this field after a service instance has been selected that is provided by an external service provider organization. + /// + public RequestQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The task that caused the request to be automatically generated. + /// + public RequestQuery SelectTask(TaskQuery query) + { + query.FieldName = "task"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team to which the request is to be assigned. By default, the first line team of the service instance that is related to the request will be selected. If a first line team has not been specified for the service instance, the support team of the service instance will be selected instead. + /// + public RequestQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The link to the request template that was last applied to the request. + /// + public RequestQuery SelectTemplate(RequestTemplateQuery query) + { + query.FieldName = "template"; + query.IsConnection = false; + return Select(query); + } + /// /// Time entries for this record. /// @@ -103,6 +303,16 @@ public RequestQuery SelectWatches(WatchQuery query) return Select(query); } + /// + /// Used to link the request to a workflow. + /// + public RequestQuery SelectWorkflow(WorkflowQuery query) + { + query.FieldName = "workflow"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Request' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -135,9 +345,9 @@ public RequestQuery SelectWatches(WatchQuery query) ///
• Matches are case-sensitive.
/// /// - public RequestQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public RequestQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { - return AddCustomFilter(name, filterOperator, values); + return AddCustomFilter(name, filterOperator, values ?? new string?[] { null }); } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/RequestTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/RequestTemplateQuery.cs index 4992ac9..b7f0227 100644 --- a/Scr/Sdk4me.GraphQL/Queries/RequestTemplateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/RequestTemplateQuery.cs @@ -13,6 +13,16 @@ public RequestTemplateQuery() { } + /// + /// The account this record belongs to. + /// + public RequestTemplateQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Automation rules associated with this record. /// @@ -22,6 +32,26 @@ public RequestTemplateQuery SelectAutomationRules(AutomationRuleQuery query) return Select(query); } + /// + /// The CI that needs to be copied to the Configuration item field of a new request when it is being created based on the template. + /// + public RequestTemplateQuery SelectConfigurationItem(ConfigurationItemQuery query) + { + query.FieldName = "configurationItem"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The effort class that is selected by default, when someone registers time on a request that is based on the request template. + /// + public RequestTemplateQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Instructions field. /// @@ -31,6 +61,16 @@ public RequestTemplateQuery SelectInstructionsAttachments(AttachmentQuery query) return Select(query); } + /// + /// Used to select the person who should be selected in the Member field of a new request when it is being created based on the template. + /// + public RequestTemplateQuery SelectMember(PersonQuery query) + { + query.FieldName = "member"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Note field. /// @@ -76,6 +116,16 @@ public RequestTemplateQuery SelectReservationOfferings(ReservationOfferingQuery return Select(query); } + /// + /// The service for which the request template is made available. + /// + public RequestTemplateQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Standard service requests related to the request template. /// @@ -85,6 +135,36 @@ public RequestTemplateQuery SelectStandardServiceRequests(StandardServiceRequest return Select(query); } + /// + /// Used to select the supplier organization that should be selected in the Supplier field of a new request when it is being created based on the template. + /// + public RequestTemplateQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that is to be used to calculate the desired completion for requests that are based on the request template. + /// + public RequestTemplateQuery SelectSupportHours(CalendarQuery query) + { + query.FieldName = "supportHours"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team that should be selected in the Team field of a new request when it is being created based on the template. + /// + public RequestTemplateQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + /// /// Translations associated with this object. /// @@ -93,5 +173,35 @@ public RequestTemplateQuery SelectTranslations(TranslationQuery query) query.FieldName = "translations"; return Select(query); } + + /// + /// UI extension that is to be added to a new request when it is being created based on the template. + /// + public RequestTemplateQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to relate a Workflow Manager to the request template. Required when a Workflow Template is defined, and the Service does not define a Workflow Manager. + /// + public RequestTemplateQuery SelectWorkflowManager(PersonQuery query) + { + query.FieldName = "workflowManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to relate a Workflow Template to the request template. Required when the Status is set to _Workflow Pending_. + /// + public RequestTemplateQuery SelectWorkflowTemplate(WorkflowTemplateQuery query) + { + query.FieldName = "workflowTemplate"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ReservationOfferingQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ReservationOfferingQuery.cs index 7c8e876..239e809 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ReservationOfferingQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ReservationOfferingQuery.cs @@ -13,6 +13,26 @@ public ReservationOfferingQuery() { } + /// + /// The account this record belongs to. + /// + public ReservationOfferingQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Calendar field is used to select the calendar that defines the hours during which the configuration items can be made available for temporary use. + /// + public ReservationOfferingQuery SelectCalendar(CalendarQuery query) + { + query.FieldName = "calendar"; + query.IsConnection = false; + return Select(query); + } + /// /// The Configuration items field is used to select the configuration items that people, who are covered by an active service level agreement for the related service instance, should be able to reserve for temporary use after the reservation offering is related to a request template of the category ‘Reservation’. /// @@ -30,5 +50,15 @@ public ReservationOfferingQuery SelectRequestTemplates(RequestTemplateQuery quer query.FieldName = "requestTemplates"; return Select(query); } + + /// + /// The Service instance field is used to select the service instance for which people need to be covered in order to be able to make use of the reservation offering. + /// + public ReservationOfferingQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ReservationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ReservationQuery.cs index 95786e1..c0bc453 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ReservationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ReservationQuery.cs @@ -13,6 +13,36 @@ public ReservationQuery() { } + /// + /// The account this record belongs to. + /// + public ReservationQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The asset that is being reserved. + /// + public ReservationQuery SelectConfigurationItem(ConfigurationItemQuery query) + { + query.FieldName = "configurationItem"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who created this reservation. + /// + public ReservationQuery SelectCreatedBy(PersonQuery query) + { + query.FieldName = "createdBy"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Description field. /// @@ -21,5 +51,45 @@ public ReservationQuery SelectDescriptionAttachments(AttachmentQuery query) query.FieldName = "descriptionAttachments"; return Select(query); } + + /// + /// The person for whom this reservation was created. + /// + public ReservationQuery SelectPerson(PersonQuery query) + { + query.FieldName = "person"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Recurrency for the reservation. + /// + public ReservationQuery SelectRecurrence(RecurrenceQuery query) + { + query.FieldName = "recurrence"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The link to the request for reservation. + /// + public ReservationQuery SelectRequest(RequestQuery query) + { + query.FieldName = "request"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The link to the reservation offering that was related to the request template used to request the reservation. + /// + public ReservationQuery SelectReservationOffering(ReservationOfferingQuery query) + { + query.FieldName = "reservationOffering"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/RiskQuery.cs b/Scr/Sdk4me.GraphQL/Queries/RiskQuery.cs index 12231e8..a1c70c3 100644 --- a/Scr/Sdk4me.GraphQL/Queries/RiskQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/RiskQuery.cs @@ -13,6 +13,26 @@ public RiskQuery() { } + /// + /// The account this record belongs to. + /// + public RiskQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public RiskQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -22,6 +42,16 @@ public RiskQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The manager of the risk. This person is able to maintain the information about the risk. + /// + public RiskQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -58,6 +88,16 @@ public RiskQuery SelectServices(ServiceQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public RiskQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Risk' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -90,7 +130,7 @@ public RiskQuery SelectServices(ServiceQuery query) ///
• Matches are case-sensitive.
/// /// - public RiskQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public RiskQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/RiskSeverityQuery.cs b/Scr/Sdk4me.GraphQL/Queries/RiskSeverityQuery.cs index 84dd1b1..f61343c 100644 --- a/Scr/Sdk4me.GraphQL/Queries/RiskSeverityQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/RiskSeverityQuery.cs @@ -13,6 +13,16 @@ public RiskSeverityQuery() { } + /// + /// The account this record belongs to. + /// + public RiskSeverityQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Information field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ScrumWorkspaceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ScrumWorkspaceQuery.cs index 103d331..e92b87a 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ScrumWorkspaceQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ScrumWorkspaceQuery.cs @@ -13,6 +13,26 @@ public ScrumWorkspaceQuery() { } + /// + /// The account this record belongs to. + /// + public ScrumWorkspaceQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Agile board used to track the progress of this workspace's active sprint. + /// + public ScrumWorkspaceQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the description field. /// @@ -22,6 +42,16 @@ public ScrumWorkspaceQuery SelectDescriptionAttachments(AttachmentQuery query) return Select(query); } + /// + /// Product backlog used when planning sprints. + /// + public ScrumWorkspaceQuery SelectProductBacklog(ProductBacklogQuery query) + { + query.FieldName = "productBacklog"; + query.IsConnection = false; + return Select(query); + } + /// /// Sprints of this scrum workspace. /// @@ -30,5 +60,15 @@ public ScrumWorkspaceQuery SelectSprints(SprintQuery query) query.FieldName = "sprints"; return Select(query); } + + /// + /// Team planning their work using this scrum workspace. + /// + public ScrumWorkspaceQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ServiceCategoryQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ServiceCategoryQuery.cs index cd5516e..0c18b11 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ServiceCategoryQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ServiceCategoryQuery.cs @@ -13,6 +13,16 @@ public ServiceCategoryQuery() { } + /// + /// The account this record belongs to. + /// + public ServiceCategoryQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Description field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ServiceInstanceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ServiceInstanceQuery.cs index 897dee4..6f434a8 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ServiceInstanceQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ServiceInstanceQuery.cs @@ -13,6 +13,16 @@ public ServiceInstanceQuery() { } + /// + /// The account this record belongs to. + /// + public ServiceInstanceQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Children of the service instance. /// @@ -31,6 +41,16 @@ public ServiceInstanceQuery SelectConfigurationItems(ConfigurationItemQuery quer return Select(query); } + /// + /// Values of custom fields. + /// + public ServiceInstanceQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -40,6 +60,16 @@ public ServiceInstanceQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// Used to select the team that will automatically be selected in the Team field of requests to which the service instance is linked after they have been submitted using Self Service or when they are generated using the Requests API, Mail API or Events API. + /// + public ServiceInstanceQuery SelectFirstLineTeam(TeamQuery query) + { + query.FieldName = "firstLineTeam"; + query.IsConnection = false; + return Select(query); + } + /// /// Parents of the service instance. /// @@ -58,6 +88,16 @@ public ServiceInstanceQuery SelectRemarksAttachments(AttachmentQuery query) return Select(query); } + /// + /// The service which functionality the service instance provides. + /// + public ServiceInstanceQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Service level agreements of the service instance. /// @@ -67,6 +107,16 @@ public ServiceInstanceQuery SelectServiceLevelAgreements(ServiceLevelAgreementQu return Select(query); } + /// + /// The team that will, by default, be selected in the Team field of a request when the service instance is manually selected in the Service instance field of the request, or when the service instance is applied from the Service Hierarchy Browser. + /// + public ServiceInstanceQuery SelectSupportTeam(TeamQuery query) + { + query.FieldName = "supportTeam"; + query.IsConnection = false; + return Select(query); + } + /// /// Translations associated with this object. /// @@ -76,6 +126,16 @@ public ServiceInstanceQuery SelectTranslations(TranslationQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public ServiceInstanceQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'ServiceInstance' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -108,7 +168,7 @@ public ServiceInstanceQuery SelectTranslations(TranslationQuery query) ///
• Matches are case-sensitive.
/// /// - public ServiceInstanceQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ServiceInstanceQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ServiceLevelAgreementQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ServiceLevelAgreementQuery.cs index ae37c39..02b6c02 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ServiceLevelAgreementQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ServiceLevelAgreementQuery.cs @@ -13,6 +13,46 @@ public ServiceLevelAgreementQuery() { } + /// + /// The account this record belongs to. + /// + public ServiceLevelAgreementQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The Activity ID is the unique identifier by which an activity that is performed in the context of a service offering is known in the billing system of the service provider. This contains the activityIDs related to request categories. + /// + public ServiceLevelAgreementQuery SelectActivityID(ActivityIDQuery query) + { + query.FieldName = "activityID"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization that pays for the agreement. + /// + public ServiceLevelAgreementQuery SelectCustomer(OrganizationQuery query) + { + query.FieldName = "customer"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The customer account this record belongs to. + /// + public ServiceLevelAgreementQuery SelectCustomerAccount(AccountQuery query) + { + query.FieldName = "customerAccount"; + query.IsConnection = false; + return Select(query); + } + /// /// The people who represent the customer organization for the service level agreement. /// @@ -67,6 +107,16 @@ public ServiceLevelAgreementQuery SelectRemarksAttachments(AttachmentQuery query return Select(query); } + /// + /// The service instance that will be used to provide the service to the customer of the service level agreement. Only service instances that are linked to the same service as the selected service offering can be selected. + /// + public ServiceLevelAgreementQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } + /// /// The service instances that consume the service instance for which the service level agreement is registered. Only available for service level agreements where the coverage field is set to service_instances. /// @@ -76,6 +126,26 @@ public ServiceLevelAgreementQuery SelectServiceInstances(ParentServiceInstanceQu return Select(query); } + /// + /// The person of the service provider organization who acts as the service level manager for the customer of the service level agreement. + /// + public ServiceLevelAgreementQuery SelectServiceLevelManager(PersonQuery query) + { + query.FieldName = "serviceLevelManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Service offering that specifies the conditions that apply to the service level agreement. + /// + public ServiceLevelAgreementQuery SelectServiceOffering(ServiceOfferingQuery query) + { + query.FieldName = "serviceOffering"; + query.IsConnection = false; + return Select(query); + } + /// /// Sites of the service level agreement. Only available for service level agreements where the coverage field is set to sites or organizations_and_sites. /// @@ -102,5 +172,15 @@ public ServiceLevelAgreementQuery SelectStandardServiceRequestActivityIDs(Standa query.FieldName = "standardServiceRequestActivityIDs"; return Select(query); } + + /// + /// The support domain account that offers the support to users covered by this the service level agreement. + /// + public ServiceLevelAgreementQuery SelectSupportDomain(AccountQuery query) + { + query.FieldName = "supportDomain"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ServiceOfferingQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ServiceOfferingQuery.cs index 05321b5..4301198 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ServiceOfferingQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ServiceOfferingQuery.cs @@ -13,6 +13,16 @@ public ServiceOfferingQuery() { } + /// + /// The account this record belongs to. + /// + public ServiceOfferingQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Charges field. /// @@ -31,6 +41,16 @@ public ServiceOfferingQuery SelectContinuityAttachments(AttachmentQuery query) return Select(query); } + /// + /// The effort class that is selected by default, when someone registers time on a request with an active affected SLA based on the service offering. + /// + public ServiceOfferingQuery SelectDefaultEffortClass(EffortClassQuery query) + { + query.FieldName = "defaultEffortClass"; + query.IsConnection = false; + return Select(query); + } + /// /// Effort class rates of the service offering. /// @@ -85,6 +105,26 @@ public ServiceOfferingQuery SelectPrerequisitesAttachments(AttachmentQuery query return Select(query); } + /// + /// The service for which the service offering is being prepared. + /// + public ServiceOfferingQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Calendar that defines the hours during which the service is supposed to be available. + /// + public ServiceOfferingQuery SelectServiceHours(CalendarQuery query) + { + query.FieldName = "serviceHours"; + query.IsConnection = false; + return Select(query); + } + /// /// Service level agreements of the service offering. /// @@ -103,6 +143,46 @@ public ServiceOfferingQuery SelectShopArticles(ShopArticleQuery query) return Select(query); } + /// + /// The SLA notification scheme for a request with the impact "High - Service Degraded for Several Users" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSlaNotificationSchemeHigh(SlaNotificationSchemeQuery query) + { + query.FieldName = "slaNotificationSchemeHigh"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The SLA notification scheme for a request with the impact "Low - Service Degraded for One User" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSlaNotificationSchemeLow(SlaNotificationSchemeQuery query) + { + query.FieldName = "slaNotificationSchemeLow"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The SLA notification scheme for a request with the impact "Medium - Service Down for One User" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSlaNotificationSchemeMedium(SlaNotificationSchemeQuery query) + { + query.FieldName = "slaNotificationSchemeMedium"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The SLA notification scheme for a request with the impact "Top - Service Down for Several Users" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSlaNotificationSchemeTop(SlaNotificationSchemeQuery query) + { + query.FieldName = "slaNotificationSchemeTop"; + query.IsConnection = false; + return Select(query); + } + /// /// Standard service requests of the service offering. /// @@ -121,6 +201,66 @@ public ServiceOfferingQuery SelectSummaryAttachments(AttachmentQuery query) return Select(query); } + /// + /// The calendar that defines the support hours for a request with the impact "High - Service Degraded for Several Users" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSupportHoursHigh(CalendarQuery query) + { + query.FieldName = "supportHoursHigh"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the support hours for a request with the impact "Low - Service Degraded for One User" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSupportHoursLow(CalendarQuery query) + { + query.FieldName = "supportHoursLow"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the support hours for a request with the impact "Medium - Service Down for One User" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSupportHoursMedium(CalendarQuery query) + { + query.FieldName = "supportHoursMedium"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the support hours for a request with the category "RFC - Request for Change" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSupportHoursRfc(CalendarQuery query) + { + query.FieldName = "supportHoursRfc"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the support hours for a request with the category "RFI - Request for Information" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSupportHoursRfi(CalendarQuery query) + { + query.FieldName = "supportHoursRfi"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the support hours for a request with the impact "Top - Service Down for Several Users" when it affects an active SLA that is based on the service offering. + /// + public ServiceOfferingQuery SelectSupportHoursTop(CalendarQuery query) + { + query.FieldName = "supportHoursTop"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Termination field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/ServiceQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ServiceQuery.cs index d697796..563aeac 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ServiceQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ServiceQuery.cs @@ -13,6 +13,66 @@ public ServiceQuery() { } + /// + /// The account this record belongs to. + /// + public ServiceQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for ensuring that the availability targets specified in the active SLAs for the service are met. + /// + public ServiceQuery SelectAvailabilityManager(PersonQuery query) + { + query.FieldName = "availabilityManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for ensuring that the service is not affected by incidents that are caused by capacity shortages. + /// + public ServiceQuery SelectCapacityManager(PersonQuery query) + { + query.FieldName = "capacityManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for coordinating the changes of the service. + /// + public ServiceQuery SelectChangeManager(PersonQuery query) + { + query.FieldName = "changeManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for creating and maintaining the continuity plans for the service's instances that have an active SLA with a continuity target. + /// + public ServiceQuery SelectContinuityManager(PersonQuery query) + { + query.FieldName = "continuityManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public ServiceQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -31,6 +91,46 @@ public ServiceQuery SelectDescriptionAttachments(AttachmentQuery query) return Select(query); } + /// + /// The team that will, by default, be selected in the First line team field of a new service instance when it is being registered for the service. + /// + public ServiceQuery SelectFirstLineTeam(TeamQuery query) + { + query.FieldName = "firstLineTeam"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for the quality of the knowledge articles for the service. + /// + public ServiceQuery SelectKnowledgeManager(PersonQuery query) + { + query.FieldName = "knowledgeManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for coordinating the problems that directly affect the service. + /// + public ServiceQuery SelectProblemManager(PersonQuery query) + { + query.FieldName = "problemManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is responsible for coordinating the releases of the service. + /// + public ServiceQuery SelectReleaseManager(PersonQuery query) + { + query.FieldName = "releaseManager"; + query.IsConnection = false; + return Select(query); + } + /// /// Service instances related to this service. /// @@ -58,6 +158,46 @@ public ServiceQuery SelectServiceOfferings(ServiceOfferingQuery query) return Select(query); } + /// + /// The person who is responsible for ensuring that the service level targets specified in the SLAs for the service are met. + /// + public ServiceQuery SelectServiceOwner(PersonQuery query) + { + query.FieldName = "serviceOwner"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization that provides the service. + /// + public ServiceQuery SelectServiceProvider(OrganizationQuery query) + { + query.FieldName = "serviceProvider"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team that will, by default, be selected in the Support team field of a service instance when one is registered for the service. Similarly, this team will be selected in the Team field of a problem when the service is related to it. + /// + public ServiceQuery SelectSupportTeam(TeamQuery query) + { + query.FieldName = "supportTeam"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Survey used to measure customer rating of this service. + /// + public ServiceQuery SelectSurvey(SurveyQuery query) + { + query.FieldName = "survey"; + query.IsConnection = false; + return Select(query); + } + /// /// Translations associated with this object. /// @@ -67,6 +207,16 @@ public ServiceQuery SelectTranslations(TranslationQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public ServiceQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Service' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -99,7 +249,7 @@ public ServiceQuery SelectTranslations(TranslationQuery query) ///
• Matches are case-sensitive.
/// /// - public ServiceQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public ServiceQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/ShopArticleQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ShopArticleQuery.cs index cde2a0a..62dc821 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ShopArticleQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ShopArticleQuery.cs @@ -12,5 +12,65 @@ public ShopArticleQuery() : base("shopArticles", typeof(ShopArticle), true) { } + + /// + /// The account this record belongs to. + /// + public ShopArticleQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Calendar that represents the work hours related to the fulfillment/delivery. + /// + public ShopArticleQuery SelectCalendar(CalendarQuery query) + { + query.FieldName = "calendar"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request template used to order one of more units of this shop article. + /// + public ShopArticleQuery SelectFulfillmentTemplate(RequestTemplateQuery query) + { + query.FieldName = "fulfillmentTemplate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Related product. + /// + public ShopArticleQuery SelectProduct(ProductQuery query) + { + query.FieldName = "product"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Information from the provider. + /// + public ShopArticleQuery SelectProviderShopArticle(ProviderShopArticleQuery query) + { + query.FieldName = "providerShopArticle"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension that is to be used when the shop article is ordered. + /// + public ShopArticleQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ShopOrderLineQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ShopOrderLineQuery.cs index a8e39b9..74b2af3 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ShopOrderLineQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ShopOrderLineQuery.cs @@ -13,6 +13,16 @@ public ShopOrderLineQuery() { } + /// + /// The account this record belongs to. + /// + public ShopOrderLineQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Addresses of the record. /// @@ -22,6 +32,16 @@ public ShopOrderLineQuery SelectAddresses(AddressQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public ShopOrderLineQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -30,5 +50,85 @@ public ShopOrderLineQuery SelectCustomFieldsAttachments(AttachmentQuery query) query.FieldName = "customFieldsAttachments"; return Select(query); } + + /// + /// The fulfillment request that is assigned to the provider to fulfil this shop order line. + /// + public ShopOrderLineQuery SelectFulfillmentRequest(RequestQuery query) + { + query.FieldName = "fulfillmentRequest"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The fulfillment task of the purchase workflow generated to fulfil this shop order line. + /// + public ShopOrderLineQuery SelectFulfillmentTask(RequestQuery query) + { + query.FieldName = "fulfillmentTask"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request template used to order one of more units of this shop article. + /// + public ShopOrderLineQuery SelectFulfillmentTemplate(RequestTemplateQuery query) + { + query.FieldName = "fulfillmentTemplate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request for purchase that includes this shop order line. + /// + public ShopOrderLineQuery SelectOrder(RequestQuery query) + { + query.FieldName = "order"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Information from the provider. + /// + public ShopOrderLineQuery SelectProviderOrderLine(ProviderShopOrderLineQuery query) + { + query.FieldName = "providerOrderLine"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person creating the shop order line. + /// + public ShopOrderLineQuery SelectRequestedBy(PersonQuery query) + { + query.FieldName = "requestedBy"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person for whom the shop order line was submitted. + /// + public ShopOrderLineQuery SelectRequestedFor(PersonQuery query) + { + query.FieldName = "requestedFor"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The shop article that is ordered. + /// + public ShopOrderLineQuery SelectShopArticle(ShopArticleQuery query) + { + query.FieldName = "shopArticle"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/ShortUrlQuery.cs b/Scr/Sdk4me.GraphQL/Queries/ShortUrlQuery.cs index a46d60c..1291886 100644 --- a/Scr/Sdk4me.GraphQL/Queries/ShortUrlQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/ShortUrlQuery.cs @@ -12,5 +12,15 @@ public ShortUrlQuery() : base("shortUrls", typeof(ShortUrl), true) { } + + /// + /// The account this record belongs to. + /// + public ShortUrlQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/SiteQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SiteQuery.cs index c1d9004..a6f8246 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SiteQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SiteQuery.cs @@ -13,6 +13,16 @@ public SiteQuery() { } + /// + /// The account this record belongs to. + /// + public SiteQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Addresses of the record. /// @@ -22,6 +32,16 @@ public SiteQuery SelectAddresses(AddressQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public SiteQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -49,6 +69,16 @@ public SiteQuery SelectRemarksAttachments(AttachmentQuery query) return Select(query); } + /// + /// UI extension that is linked to the record. + /// + public SiteQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Site' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -81,7 +111,7 @@ public SiteQuery SelectRemarksAttachments(AttachmentQuery query) ///
• Matches are case-sensitive.
/// /// - public SiteQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public SiteQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/SkillPoolQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SkillPoolQuery.cs index c9229eb..ce88436 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SkillPoolQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SkillPoolQuery.cs @@ -13,6 +13,16 @@ public SkillPoolQuery() { } + /// + /// The account this record belongs to. + /// + public SkillPoolQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Effort classes linked to the skill pool. /// @@ -22,6 +32,16 @@ public SkillPoolQuery SelectEffortClasses(EffortClassQuery query) return Select(query); } + /// + /// The manager or supervisor of the skill pool. This person is able to maintain the information about the skill pool. The manager of a skill pool does not need to be a member of the skill pool. + /// + public SkillPoolQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + /// /// People linked as a member to the skill pool. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/SlaNotificationSchemeQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SlaNotificationSchemeQuery.cs index 752ebe7..ecddbda 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SlaNotificationSchemeQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SlaNotificationSchemeQuery.cs @@ -13,6 +13,16 @@ public SlaNotificationSchemeQuery() { } + /// + /// The account this record belongs to. + /// + public SlaNotificationSchemeQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Rules of the SLA notification scheme. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/SnapshotQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SnapshotQuery.cs new file mode 100644 index 0000000..37e1cb1 --- /dev/null +++ b/Scr/Sdk4me.GraphQL/Queries/SnapshotQuery.cs @@ -0,0 +1,16 @@ +namespace Sdk4me.GraphQL +{ + /// + /// The Snapshot query. + /// + public class SnapshotQuery : Query + { + /// + /// Initialize a new snapshot query instance. + /// + public SnapshotQuery() + : base("", typeof(Snapshot), false) + { + } + } +} diff --git a/Scr/Sdk4me.GraphQL/Queries/SprintBacklogItemQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SprintBacklogItemQuery.cs index 8c2d3be..debdf36 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SprintBacklogItemQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SprintBacklogItemQuery.cs @@ -13,6 +13,16 @@ public SprintBacklogItemQuery() { } + /// + /// The account this record belongs to. + /// + public SprintBacklogItemQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Record on the sprint backlog. /// @@ -21,5 +31,15 @@ public SprintBacklogItemQuery SelectRecord(HasSprintBacklogItemsQuery query) query.FieldName = "record"; return Select(query); } + + /// + /// Sprint this record is part of. + /// + public SprintBacklogItemQuery SelectSprint(SprintQuery query) + { + query.FieldName = "sprint"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/SprintQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SprintQuery.cs index 881f381..24a437c 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SprintQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SprintQuery.cs @@ -13,6 +13,16 @@ public SprintQuery() { } + /// + /// The account this record belongs to. + /// + public SprintQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the description field. /// @@ -22,6 +32,16 @@ public SprintQuery SelectDescriptionAttachments(AttachmentQuery query) return Select(query); } + /// + /// Scrum workspace this sprint belongs to. + /// + public SprintQuery SelectScrumWorkspace(ScrumWorkspaceQuery query) + { + query.FieldName = "scrumWorkspace"; + query.IsConnection = false; + return Select(query); + } + /// /// Items in this sprint. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestActivityIDQuery.cs b/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestActivityIDQuery.cs index db4f6e6..e83e3d9 100644 --- a/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestActivityIDQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestActivityIDQuery.cs @@ -12,5 +12,15 @@ public StandardServiceRequestActivityIDQuery() : base("", typeof(StandardServiceRequestActivityID), true) { } + + /// + /// The standard service request for which an activityID is provided. + /// + public StandardServiceRequestActivityIDQuery SelectStandardServiceRequest(StandardServiceRequestQuery query) + { + query.FieldName = "standardServiceRequest"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestQuery.cs b/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestQuery.cs index edca224..38a6e70 100644 --- a/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/StandardServiceRequestQuery.cs @@ -12,5 +12,45 @@ public StandardServiceRequestQuery() : base("", typeof(StandardServiceRequest), true) { } + + /// + /// The request template related to the service offering. Only the request templates that are linked to the same service as the service offering can be selected. + /// + public StandardServiceRequestQuery SelectRequestTemplate(RequestTemplateQuery query) + { + query.FieldName = "requestTemplate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Service offering the standard service request belongs to. + /// + public StandardServiceRequestQuery SelectServiceOffering(ServiceOfferingQuery query) + { + query.FieldName = "serviceOffering"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The SLA notification scheme for a request when it affects an active SLA that is based on the service offering. Only enabled SLA notification schemes that are linked to the same account as the service offering can be selected. + /// + public StandardServiceRequestQuery SelectSlaNotificationScheme(SlaNotificationSchemeQuery query) + { + query.FieldName = "slaNotificationScheme"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the support hours for a request to which the request template has been applied and which requester is covered by an SLA that is based on the service offering. + /// + public StandardServiceRequestQuery SelectSupportHours(CalendarQuery query) + { + query.FieldName = "supportHours"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/SurveyAnswerQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SurveyAnswerQuery.cs index 0621ccb..a276844 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SurveyAnswerQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SurveyAnswerQuery.cs @@ -13,6 +13,36 @@ public SurveyAnswerQuery() { } + /// + /// The account this record belongs to. + /// + public SurveyAnswerQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Question this answer is for. + /// + public SurveyAnswerQuery SelectQuestion(SurveyQuestionQuery query) + { + query.FieldName = "question"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Survey response the answer is part of. + /// + public SurveyAnswerQuery SelectSurveyResponse(SurveyResponseQuery query) + { + query.FieldName = "surveyResponse"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Text field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/SurveyQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SurveyQuery.cs index 888e313..e1fb319 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SurveyQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SurveyQuery.cs @@ -13,6 +13,16 @@ public SurveyQuery() { } + /// + /// The account this record belongs to. + /// + public SurveyQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Completion field. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/SurveyQuestionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SurveyQuestionQuery.cs index dc267bf..54252fb 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SurveyQuestionQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SurveyQuestionQuery.cs @@ -13,6 +13,16 @@ public SurveyQuestionQuery() { } + /// + /// The account this record belongs to. + /// + public SurveyQuestionQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Guidance field. /// @@ -21,5 +31,15 @@ public SurveyQuestionQuery SelectGuidanceAttachments(AttachmentQuery query) query.FieldName = "guidanceAttachments"; return Select(query); } + + /// + /// Survey the question is part of. + /// + public SurveyQuestionQuery SelectSurvey(SurveyQuery query) + { + query.FieldName = "survey"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/SurveyResponseQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SurveyResponseQuery.cs index 4ca4a33..be08995 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SurveyResponseQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SurveyResponseQuery.cs @@ -13,6 +13,16 @@ public SurveyResponseQuery() { } + /// + /// The account this record belongs to. + /// + public SurveyResponseQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Answers of this survey response. /// @@ -22,6 +32,16 @@ public SurveyResponseQuery SelectAnswers(SurveyAnswerQuery query) return Select(query); } + /// + /// Service this response is about. + /// + public SurveyResponseQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// SLAs of this survey response. /// @@ -30,5 +50,15 @@ public SurveyResponseQuery SelectSlas(ServiceLevelAgreementQuery query) query.FieldName = "slas"; return Select(query); } + + /// + /// Survey this response is for. + /// + public SurveyResponseQuery SelectSurvey(SurveyQuery query) + { + query.FieldName = "survey"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/SyncSetQuery.cs b/Scr/Sdk4me.GraphQL/Queries/SyncSetQuery.cs index 65590d0..c10d074 100644 --- a/Scr/Sdk4me.GraphQL/Queries/SyncSetQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/SyncSetQuery.cs @@ -13,6 +13,16 @@ public SyncSetQuery() { } + /// + /// The account this record belongs to. + /// + public SyncSetQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the description field. /// @@ -21,5 +31,15 @@ public SyncSetQuery SelectDescriptionAttachments(AttachmentQuery query) query.FieldName = "descriptionAttachments"; return Select(query); } + + /// + /// The latest completed snapshot of this sync set. + /// + public SyncSetQuery SelectLastSnapshot(SnapshotQuery query) + { + query.FieldName = "lastSnapshot"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/TaskApprovalQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TaskApprovalQuery.cs index 26e147e..630cceb 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TaskApprovalQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TaskApprovalQuery.cs @@ -12,5 +12,25 @@ public TaskApprovalQuery() : base("", typeof(TaskApproval), true) { } + + /// + /// The person who is selected as the approver for the approval. + /// + public TaskApprovalQuery SelectApprover(PersonQuery query) + { + query.FieldName = "approver"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The summary PDF file that was generated for the approver when the approval was last set to the status assigned. + /// + public TaskApprovalQuery SelectAttachment(AttachmentQuery query) + { + query.FieldName = "attachment"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/TaskQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TaskQuery.cs index ded10b9..5dd6082 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TaskQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TaskQuery.cs @@ -13,6 +13,36 @@ public TaskQuery() { } + /// + /// The account this record belongs to. + /// + public TaskQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Board this item is placed on. + /// + public TaskQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Column this item is placed in. + /// + public TaskQuery SelectAgileBoardColumn(AgileBoardColumnQuery query) + { + query.FieldName = "agileBoardColumn"; + query.IsConnection = false; + return Select(query); + } + /// /// Approvals of the task. /// @@ -40,6 +70,16 @@ public TaskQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public TaskQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -49,6 +89,16 @@ public TaskQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The task that will be assigned in case this task is failed or rejected. + /// + public TaskQuery SelectFailureTask(TaskQuery query) + { + query.FieldName = "failureTask"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Instructions field. /// @@ -58,6 +108,16 @@ public TaskQuery SelectInstructionsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The person to whom the task is to be assigned. This field's value is null in case of an approval task with multiple approvers. + /// + public TaskQuery SelectMember(PersonQuery query) + { + query.FieldName = "member"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -67,6 +127,66 @@ public TaskQuery SelectNotes(NoteQuery query) return Select(query); } + /// + /// The order line related to the fulfillment task. + /// + public TaskQuery SelectOrderLine(ShopOrderLineQuery query) + { + query.FieldName = "orderLine"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The PDF design associated with the task. + /// + public TaskQuery SelectPdfDesign(PdfDesignQuery query) + { + query.FieldName = "pdfDesign"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The phase of the workflow to which the task belongs. + /// + public TaskQuery SelectPhase(WorkflowPhaseQuery query) + { + query.FieldName = "phase"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request related to this task. When this request is solved the task will be completed. + /// + public TaskQuery SelectRequest(RequestQuery query) + { + query.FieldName = "request"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service instance that should be used to create the request for this task. + /// + public TaskQuery SelectRequestServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "requestServiceInstance"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request template that should be used to create the request for this task. + /// + public TaskQuery SelectRequestTemplate(RequestTemplateQuery query) + { + query.FieldName = "requestTemplate"; + query.IsConnection = false; + return Select(query); + } + /// /// Service instances of the task. /// @@ -85,6 +205,36 @@ public TaskQuery SelectSprintBacklogItems(SprintBacklogItemQuery query) return Select(query); } + /// + /// The supplier organization that has been asked to assist with the completion of the task. + /// + public TaskQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The team to which the task is to be assigned. + /// + public TaskQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The task template that was used to register the task. + /// + public TaskQuery SelectTemplate(TaskTemplateQuery query) + { + query.FieldName = "template"; + query.IsConnection = false; + return Select(query); + } + /// /// Time entries for this record. /// @@ -94,6 +244,16 @@ public TaskQuery SelectTimeEntries(TimeEntryQuery query) return Select(query); } + /// + /// The workflow to which the task belongs. + /// + public TaskQuery SelectWorkflow(WorkflowQuery query) + { + query.FieldName = "workflow"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Task' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -126,7 +286,7 @@ public TaskQuery SelectTimeEntries(TimeEntryQuery query) ///
• Matches are case-sensitive.
/// /// - public TaskQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public TaskQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/TaskTemplateApprovalQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TaskTemplateApprovalQuery.cs index 376c87b..69163b7 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TaskTemplateApprovalQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TaskTemplateApprovalQuery.cs @@ -12,5 +12,15 @@ public TaskTemplateApprovalQuery() : base("", typeof(TaskTemplateApproval), true) { } + + /// + /// The person who is selected as the approver for the task template approval. + /// + public TaskTemplateApprovalQuery SelectApprover(PersonQuery query) + { + query.FieldName = "approver"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/TaskTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TaskTemplateQuery.cs index fb47352..b698ae4 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TaskTemplateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TaskTemplateQuery.cs @@ -13,6 +13,16 @@ public TaskTemplateQuery() { } + /// + /// The account this record belongs to. + /// + public TaskTemplateQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Approvals of the task template. /// @@ -40,6 +50,16 @@ public TaskTemplateQuery SelectConfigurationItems(ConfigurationItemQuery query) return Select(query); } + /// + /// The effort class that is selected by default, when someone registers time on a task created based on the template. + /// + public TaskTemplateQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Instructions field. /// @@ -49,6 +69,16 @@ public TaskTemplateQuery SelectInstructionsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The person who should be selected in the Member field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectMember(PersonQuery query) + { + query.FieldName = "member"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Note field. /// @@ -58,6 +88,36 @@ public TaskTemplateQuery SelectNoteAttachments(AttachmentQuery query) return Select(query); } + /// + /// The PDF design that needs to be copied to the PDF design field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectPdfDesign(PdfDesignQuery query) + { + query.FieldName = "pdfDesign"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service instance that should be selected in the Request service instance field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectRequestServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "requestServiceInstance"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The request template that should be selected in the Request template field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectRequestTemplate(RequestTemplateQuery query) + { + query.FieldName = "requestTemplate"; + query.IsConnection = false; + return Select(query); + } + /// /// Service instances of the task template. /// @@ -67,6 +127,26 @@ public TaskTemplateQuery SelectServiceInstances(ServiceInstanceQuery query) return Select(query); } + /// + /// The skill pool that should be selected in the Skill pool field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectSkillPool(SkillPoolQuery query) + { + query.FieldName = "skillPool"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The supplier organization that should be selected in the Supplier field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectSupplier(OrganizationQuery query) + { + query.FieldName = "supplier"; + query.IsConnection = false; + return Select(query); + } + /// /// Tasks created using the task template. /// @@ -76,6 +156,26 @@ public TaskTemplateQuery SelectTasks(TaskQuery query) return Select(query); } + /// + /// The team that should be selected in the Team field of a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension that is to be added to a new task when it is being created based on the template. + /// + public TaskTemplateQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + /// /// Workflow templates that include the task template. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/TeamQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TeamQuery.cs index a2cfd7a..ec1430d 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TeamQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TeamQuery.cs @@ -13,6 +13,56 @@ public TeamQuery() { } + /// + /// The account this record belongs to. + /// + public TeamQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Used to automatically link records to the agile board when they are assigned to the team. + /// + public TeamQuery SelectAgileBoard(AgileBoardQuery query) + { + query.FieldName = "agileBoard"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who maintains the information about the configuration items that the team supports. + /// + public TeamQuery SelectConfigurationManager(PersonQuery query) + { + query.FieldName = "configurationManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The current team coordinator for the team. Only members of the team can be selected in this field. + /// + public TeamQuery SelectCoordinator(PersonQuery query) + { + query.FieldName = "coordinator"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Values of custom fields. + /// + public TeamQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -22,6 +72,16 @@ public TeamQuery SelectCustomFieldsAttachments(AttachmentQuery query) return Select(query); } + /// + /// The manager or supervisor of the team. This person is able to maintain the information about the team. The manager of a team does not need to be a member of the team. + /// + public TeamQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + /// /// People linked as a member to the team. /// @@ -40,6 +100,36 @@ public TeamQuery SelectRemarksAttachments(AttachmentQuery query) return Select(query); } + /// + /// Scrum workspace used by this team to plan their work. + /// + public TeamQuery SelectScrumWorkspace(ScrumWorkspaceQuery query) + { + query.FieldName = "scrumWorkspace"; + query.IsConnection = false; + return Select(query); + } + + /// + /// UI extension that is linked to the record. + /// + public TeamQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The calendar that defines the work hours during which the team is available for work on all types of assignments. + /// + public TeamQuery SelectWorkHours(CalendarQuery query) + { + query.FieldName = "workHours"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Team' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -72,7 +162,7 @@ public TeamQuery SelectRemarksAttachments(AttachmentQuery query) ///
• Matches are case-sensitive.
/// /// - public TeamQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public TeamQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/TimeAllocationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TimeAllocationQuery.cs index e8750b0..7aa7300 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TimeAllocationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TimeAllocationQuery.cs @@ -13,6 +13,16 @@ public TimeAllocationQuery() { } + /// + /// The account this record belongs to. + /// + public TimeAllocationQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Customer organizations of the time allocation. /// @@ -22,6 +32,16 @@ public TimeAllocationQuery SelectCustomers(OrganizationQuery query) return Select(query); } + /// + /// The effort class that is selected by default, when someone registers time on this time allocation. + /// + public TimeAllocationQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + /// /// Organizations of the time allocation. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/TimeEntryQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TimeEntryQuery.cs index 2e58db5..af6c13e 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TimeEntryQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TimeEntryQuery.cs @@ -13,6 +13,16 @@ public TimeEntryQuery() { } + /// + /// The account this record belongs to. + /// + public TimeEntryQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// The record in which the Time spent field was filled out to cause the time entry to be generated. /// @@ -21,5 +31,105 @@ public TimeEntryQuery SelectAssignment(HasTimeEntriesQuery query) query.FieldName = "assignment"; return Select(query); } + + /// + /// The organization for which the time was spent. + /// + public TimeEntryQuery SelectCustomer(OrganizationQuery query) + { + query.FieldName = "customer"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The effort class that best reflects the type of effort for which time spent is being registered. + /// + public TimeEntryQuery SelectEffortClass(EffortClassQuery query) + { + query.FieldName = "effortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The note the time entry is linked to. + /// + public TimeEntryQuery SelectNote(NoteQuery query) + { + query.FieldName = "note"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The organization to which the person was linked when the time entry was created. + /// + public TimeEntryQuery SelectOrganization(OrganizationQuery query) + { + query.FieldName = "organization"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who spent the time. + /// + public TimeEntryQuery SelectPerson(PersonQuery query) + { + query.FieldName = "person"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service for which the time was spent. + /// + public TimeEntryQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service instance for which the time was spent. This field is automatically set when a time entry is created for a request. + /// + public TimeEntryQuery SelectServiceInstance(ServiceInstanceQuery query) + { + query.FieldName = "serviceInstance"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service level agreement for which the time was spent. This field is automatically set when a time entry is created for a request. + /// + public TimeEntryQuery SelectServiceLevelAgreement(ServiceLevelAgreementQuery query) + { + query.FieldName = "serviceLevelAgreement"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Team the person of the time entry was a member of while the work was performed. + /// + public TimeEntryQuery SelectTeam(TeamQuery query) + { + query.FieldName = "team"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The time allocation on which the time was spent. Only the time allocations that are linked to the person’s organization can be selected. + /// + public TimeEntryQuery SelectTimeAllocation(TimeAllocationQuery query) + { + query.FieldName = "timeAllocation"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/TimesheetSettingQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TimesheetSettingQuery.cs index 79a3cd9..43e3b62 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TimesheetSettingQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TimesheetSettingQuery.cs @@ -13,6 +13,16 @@ public TimesheetSettingQuery() { } + /// + /// The account this record belongs to. + /// + public TimesheetSettingQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Effort classes of the timesheet setting. /// @@ -30,5 +40,55 @@ public TimesheetSettingQuery SelectOrganizations(OrganizationQuery query) query.FieldName = "organizations"; return Select(query); } + + /// + /// The effort class that is selected by default, when someone in an organization linked to the timesheet settings registers time on a problem. + /// + public TimesheetSettingQuery SelectProblemEffortClass(EffortClassQuery query) + { + query.FieldName = "problemEffortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The effort class that is selected by default, when someone in an organization linked to the timesheet settings registers time on a project task. + /// + public TimesheetSettingQuery SelectProjectTaskEffortClass(EffortClassQuery query) + { + query.FieldName = "projectTaskEffortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The effort class that is selected by default, when someone in an organization linked to the timesheet settings registers time on a request. + /// + public TimesheetSettingQuery SelectRequestEffortClass(EffortClassQuery query) + { + query.FieldName = "requestEffortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The effort class that is selected by default, when someone in an organization linked to the timesheet settings registers time on a workflow task. + /// + public TimesheetSettingQuery SelectTaskEffortClass(EffortClassQuery query) + { + query.FieldName = "taskEffortClass"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The effort class that is selected by default, when someone in an organization linked to the timesheet settings registers time on a time allocation. + /// + public TimesheetSettingQuery SelectTimeAllocationEffortClass(EffortClassQuery query) + { + query.FieldName = "timeAllocationEffortClass"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/TranslationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TranslationQuery.cs index ad340c3..1affe12 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TranslationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TranslationQuery.cs @@ -13,6 +13,16 @@ public TranslationQuery() { } + /// + /// The account this record belongs to. + /// + public TranslationQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// The record from which the translation is obtained. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/TrashQuery.cs b/Scr/Sdk4me.GraphQL/Queries/TrashQuery.cs index 9a69f69..d23e2fe 100644 --- a/Scr/Sdk4me.GraphQL/Queries/TrashQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/TrashQuery.cs @@ -12,5 +12,35 @@ public TrashQuery() : base("trash", typeof(Trash), true) { } + + /// + /// The account of the trashed record belongs to. + /// + public TrashQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The trashed record, e.g. Request. + /// + public TrashQuery SelectTrashed(HasLifeCycleStateQuery query) + { + query.FieldName = "trashed"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who trashed the record. + /// + public TrashQuery SelectTrashedBy(PersonQuery query) + { + query.FieldName = "trashedBy"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/UiExtensionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/UiExtensionQuery.cs index 754d3f4..ec85817 100644 --- a/Scr/Sdk4me.GraphQL/Queries/UiExtensionQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/UiExtensionQuery.cs @@ -13,6 +13,36 @@ public UiExtensionQuery() { } + /// + /// The account this record belongs to. + /// + public UiExtensionQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The version with Status active. + /// + public UiExtensionQuery SelectActiveVersion(UiExtensionVersionQuery query) + { + query.FieldName = "activeVersion"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who created the UI extension. + /// + public UiExtensionQuery SelectCreatedBy(PersonQuery query) + { + query.FieldName = "createdBy"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Description field. /// @@ -31,6 +61,16 @@ public UiExtensionQuery SelectTranslations(TranslationQuery query) return Select(query); } + /// + /// The person who last updated the UI extension. + /// + public UiExtensionQuery SelectUpdatedBy(PersonQuery query) + { + query.FieldName = "updatedBy"; + query.IsConnection = false; + return Select(query); + } + /// /// Versions of the UI extension. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/UiExtensionVersionQuery.cs b/Scr/Sdk4me.GraphQL/Queries/UiExtensionVersionQuery.cs index ef66f41..29fb7b9 100644 --- a/Scr/Sdk4me.GraphQL/Queries/UiExtensionVersionQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/UiExtensionVersionQuery.cs @@ -12,5 +12,15 @@ public UiExtensionVersionQuery() : base("", typeof(UiExtensionVersion), true) { } + + /// + /// UI extension this version belongs to. + /// + public UiExtensionVersionQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/WatchQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WatchQuery.cs index 8de22c5..5cd5939 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WatchQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WatchQuery.cs @@ -12,5 +12,25 @@ public WatchQuery() : base("", typeof(Watch), true) { } + + /// + /// The person who added this watch. + /// + public WatchQuery SelectAddedBy(PersonQuery query) + { + query.FieldName = "addedBy"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who is watching the record. + /// + public WatchQuery SelectPerson(PersonQuery query) + { + query.FieldName = "person"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/WebhookPolicyQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WebhookPolicyQuery.cs index 5757a7f..eb233d1 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WebhookPolicyQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WebhookPolicyQuery.cs @@ -12,5 +12,15 @@ public WebhookPolicyQuery() : base("webhookPolicies", typeof(WebhookPolicy), true) { } + + /// + /// The account this record belongs to. + /// + public WebhookPolicyQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/WebhookQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WebhookQuery.cs index 99bbe64..015fc86 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WebhookQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WebhookQuery.cs @@ -13,6 +13,16 @@ public WebhookQuery() { } + /// + /// The account this record belongs to. + /// + public WebhookQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to the Description field. /// @@ -21,5 +31,15 @@ public WebhookQuery SelectDescriptionAttachments(AttachmentQuery query) query.FieldName = "descriptionAttachments"; return Select(query); } + + /// + /// The webhook policy to use for cryptographic signing of the messages. + /// + public WebhookQuery SelectWebhookPolicy(WebhookPolicyQuery query) + { + query.FieldName = "webhookPolicy"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/WorkflowQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WorkflowQuery.cs index 64b1b7e..6e2f691 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WorkflowQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WorkflowQuery.cs @@ -13,6 +13,16 @@ public WorkflowQuery() { } + /// + /// The account this record belongs to. + /// + public WorkflowQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Automation rules associated with this record. /// @@ -22,6 +32,16 @@ public WorkflowQuery SelectAutomationRules(AutomationRuleQuery query) return Select(query); } + /// + /// Values of custom fields. + /// + public WorkflowQuery SelectCustomFields(CustomFieldQuery query) + { + query.FieldName = "customFields"; + query.IsConnection = false; + return Select(query); + } + /// /// Inline images linked to one of the custom fields. /// @@ -40,6 +60,16 @@ public WorkflowQuery SelectInvoices(InvoiceQuery query) return Select(query); } + /// + /// Who is responsible for coordinating the implementation of the workflow. If a manager is not specified for a new workflow, the API user is selected in the Manager field by default. + /// + public WorkflowQuery SelectManager(PersonQuery query) + { + query.FieldName = "manager"; + query.IsConnection = false; + return Select(query); + } + /// /// Notes of the record. /// @@ -67,6 +97,26 @@ public WorkflowQuery SelectProblems(ProblemQuery query) return Select(query); } + /// + /// Linked project + /// + public WorkflowQuery SelectProject(ProjectQuery query) + { + query.FieldName = "project"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The release that the workflow is a part of. + /// + public WorkflowQuery SelectRelease(ReleaseQuery query) + { + query.FieldName = "release"; + query.IsConnection = false; + return Select(query); + } + /// /// All requests of this workflow. /// @@ -76,6 +126,16 @@ public WorkflowQuery SelectRequests(RequestQuery query) return Select(query); } + /// + /// The service that will directly be affected by the workflow implementation, or in case of an emergency change, the service that was directly affected by the workflow implementation. + /// + public WorkflowQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// All tasks of this workflow. /// @@ -85,6 +145,16 @@ public WorkflowQuery SelectTasks(TaskQuery query) return Select(query); } + /// + /// The workflow template that was used to register the workflow. + /// + public WorkflowQuery SelectTemplate(WorkflowTemplateQuery query) + { + query.FieldName = "template"; + query.IsConnection = false; + return Select(query); + } + /// ///
Filter the 'Workflow' by their custom fields that have been marked as 'Filterable' in their UI Extension.
///
Additional information is available on the 4me developer site.
@@ -117,7 +187,7 @@ public WorkflowQuery SelectTasks(TaskQuery query) ///
• Matches are case-sensitive.
/// /// - public WorkflowQuery CustomFilter(string name, FilterOperator filterOperator, params string[] values) + public WorkflowQuery CustomFilter(string name, FilterOperator filterOperator, params string?[] values) { return AddCustomFilter(name, filterOperator, values); } diff --git a/Scr/Sdk4me.GraphQL/Queries/WorkflowTaskTemplateRelationQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WorkflowTaskTemplateRelationQuery.cs index 30afee0..a444d64 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WorkflowTaskTemplateRelationQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WorkflowTaskTemplateRelationQuery.cs @@ -21,5 +21,45 @@ public WorkflowTaskTemplateRelationQuery SelectAutomationRules(AutomationRuleQue query.FieldName = "automationRules"; return Select(query); } + + /// + /// The template of the task that will be assigned in case this task is failed or rejected. + /// + public WorkflowTaskTemplateRelationQuery SelectFailureTaskTemplate(TaskTemplateQuery query) + { + query.FieldName = "failureTaskTemplate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The phase of the workflow template that the workflow task template is a part of. + /// + public WorkflowTaskTemplateRelationQuery SelectPhase(WorkflowTemplatePhaseQuery query) + { + query.FieldName = "phase"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Task template related to the workflow template. + /// + public WorkflowTaskTemplateRelationQuery SelectTaskTemplate(TaskTemplateQuery query) + { + query.FieldName = "taskTemplate"; + query.IsConnection = false; + return Select(query); + } + + /// + /// Workflow template related to the task template. + /// + public WorkflowTaskTemplateRelationQuery SelectWorkflowTemplate(WorkflowTemplateQuery query) + { + query.FieldName = "workflowTemplate"; + query.IsConnection = false; + return Select(query); + } } } diff --git a/Scr/Sdk4me.GraphQL/Queries/WorkflowTemplateQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WorkflowTemplateQuery.cs index 6c13ff1..8ab871b 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WorkflowTemplateQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WorkflowTemplateQuery.cs @@ -13,6 +13,16 @@ public WorkflowTemplateQuery() { } + /// + /// The account this record belongs to. + /// + public WorkflowTemplateQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Automation rules associated with this record. /// @@ -58,6 +68,26 @@ public WorkflowTemplateQuery SelectPhases(WorkflowTemplatePhaseQuery query) return Select(query); } + /// + /// Recurrency for the workflow template. + /// + public WorkflowTemplateQuery SelectRecurrence(RecurrenceQuery query) + { + query.FieldName = "recurrence"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The service that should be selected in the Service field of a new workflow when it is being created based on the template. + /// + public WorkflowTemplateQuery SelectService(ServiceQuery query) + { + query.FieldName = "service"; + query.IsConnection = false; + return Select(query); + } + /// /// Task template relations of the workflow template /// @@ -67,6 +97,36 @@ public WorkflowTemplateQuery SelectTaskTemplateRelations(WorkflowTaskTemplateRel return Select(query); } + /// + /// UI extension that is to be added to a new workflow when it is being created based on the template. + /// + public WorkflowTemplateQuery SelectUiExtension(UiExtensionQuery query) + { + query.FieldName = "uiExtension"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The person who will be responsible for coordinating the workflows that will be generated automatically in accordance with the recurrence schedule. + /// + public WorkflowTemplateQuery SelectWorkflowManager(PersonQuery query) + { + query.FieldName = "workflowManager"; + query.IsConnection = false; + return Select(query); + } + + /// + /// The type that needs to be selected in the Type field of a new workflow when it is being created based on the template. + /// + public WorkflowTemplateQuery SelectWorkflowType(WorkflowTypeQuery query) + { + query.FieldName = "workflowType"; + query.IsConnection = false; + return Select(query); + } + /// /// Workflows of the workflow template. /// diff --git a/Scr/Sdk4me.GraphQL/Queries/WorkflowTypeQuery.cs b/Scr/Sdk4me.GraphQL/Queries/WorkflowTypeQuery.cs index 5a63950..ddb5625 100644 --- a/Scr/Sdk4me.GraphQL/Queries/WorkflowTypeQuery.cs +++ b/Scr/Sdk4me.GraphQL/Queries/WorkflowTypeQuery.cs @@ -13,6 +13,16 @@ public WorkflowTypeQuery() { } + /// + /// The account this record belongs to. + /// + public WorkflowTypeQuery SelectAccount(AccountQuery query) + { + query.FieldName = "account"; + query.IsConnection = false; + return Select(query); + } + /// /// Files and inline images linked to the Information field. ///