import * as Models from './models'; import * as Parameters from './parameters'; import { Callback } from '../callback'; import { Client } from '../clients'; import { RequestConfig } from '../requestConfig'; export class TimeTracking { constructor(private client: Client) {} /** * Returns the time tracking provider that is currently selected. Note that if time tracking is disabled, then a * successful but empty response is returned. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getSelectedTimeTrackingImplementation(callback: Callback): Promise; /** * Returns the time tracking provider that is currently selected. Note that if time tracking is disabled, then a * successful but empty response is returned. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getSelectedTimeTrackingImplementation(callback?: never): Promise; async getSelectedTimeTrackingImplementation(callback?: Callback): Promise { const config: RequestConfig = { url: '/rest/api/3/configuration/timetracking', method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Selects a time tracking provider. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async selectTimeTrackingImplementation( parameters: Parameters.SelectTimeTrackingImplementation | undefined, callback: Callback, ): Promise; /** * Selects a time tracking provider. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async selectTimeTrackingImplementation( parameters?: Parameters.SelectTimeTrackingImplementation, callback?: never, ): Promise; async selectTimeTrackingImplementation( parameters?: Parameters.SelectTimeTrackingImplementation, callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/configuration/timetracking', method: 'PUT', data: { key: parameters?.key, name: parameters?.name, url: parameters?.url, }, }; return this.client.sendRequest(config, callback); } /** * Returns all time tracking providers. By default, Jira only has one time tracking provider: _JIRA provided time * tracking_. However, you can install other time tracking providers via apps from the Atlassian Marketplace. For more * information on time tracking providers, see the documentation for the [ Time Tracking * Provider](https://developer.atlassian.com/cloud/jira/platform/modules/time-tracking-provider/) module. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getAvailableTimeTrackingImplementations( callback: Callback, ): Promise; /** * Returns all time tracking providers. By default, Jira only has one time tracking provider: _JIRA provided time * tracking_. However, you can install other time tracking providers via apps from the Atlassian Marketplace. For more * information on time tracking providers, see the documentation for the [ Time Tracking * Provider](https://developer.atlassian.com/cloud/jira/platform/modules/time-tracking-provider/) module. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getAvailableTimeTrackingImplementations(callback?: never): Promise; async getAvailableTimeTrackingImplementations( callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/configuration/timetracking/list', method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Returns the time tracking settings. This includes settings such as the time format, default time unit, and others. * For more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM). * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getSharedTimeTrackingConfiguration(callback: Callback): Promise; /** * Returns the time tracking settings. This includes settings such as the time format, default time unit, and others. * For more information, see [Configuring time tracking](https://confluence.atlassian.com/x/qoXKM). * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async getSharedTimeTrackingConfiguration(callback?: never): Promise; async getSharedTimeTrackingConfiguration( callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/configuration/timetracking/options', method: 'GET', }; return this.client.sendRequest(config, callback); } /** * Sets the time tracking settings. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setSharedTimeTrackingConfiguration( parameters: Parameters.SetSharedTimeTrackingConfiguration | undefined, callback: Callback, ): Promise; /** * Sets the time tracking settings. * * **[Permissions](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/#permissions) required:** * _Administer Jira_ [global permission](https://confluence.atlassian.com/x/x4dKLg). */ async setSharedTimeTrackingConfiguration( parameters?: Parameters.SetSharedTimeTrackingConfiguration, callback?: never, ): Promise; async setSharedTimeTrackingConfiguration( parameters?: Parameters.SetSharedTimeTrackingConfiguration, callback?: Callback, ): Promise { const config: RequestConfig = { url: '/rest/api/3/configuration/timetracking/options', method: 'PUT', data: { workingHoursPerDay: parameters?.workingHoursPerDay, workingDaysPerWeek: parameters?.workingDaysPerWeek, timeFormat: parameters?.timeFormat, defaultUnit: parameters?.defaultUnit, }, }; return this.client.sendRequest(config, callback); } }