diff --git a/index/spec_index_test.go b/index/spec_index_test.go index 0d11a11..a7f1f2b 100644 --- a/index/spec_index_test.go +++ b/index/spec_index_test.go @@ -43,7 +43,7 @@ func TestSpecIndex_ExtractRefsStripe(t *testing.T) { func TestSpecIndex_Asana(t *testing.T) { - asana, _ := ioutil.ReadFile("test_files/asana.yaml") + asana, _ := ioutil.ReadFile("../test_specs/asana.yaml") var rootNode yaml.Node yaml.Unmarshal(asana, &rootNode) @@ -66,7 +66,7 @@ func TestSpecIndex_Asana(t *testing.T) { func TestSpecIndex_k8s(t *testing.T) { - asana, _ := ioutil.ReadFile("test_files/k8s.json") + asana, _ := ioutil.ReadFile("../test_specs/k8s.json") var rootNode yaml.Node yaml.Unmarshal(asana, &rootNode) @@ -93,7 +93,7 @@ func TestSpecIndex_k8s(t *testing.T) { func TestSpecIndex_PetstoreV2(t *testing.T) { - asana, _ := ioutil.ReadFile("test_files/petstorev2.json") + asana, _ := ioutil.ReadFile("../test_specs/petstorev2.json") var rootNode yaml.Node yaml.Unmarshal(asana, &rootNode) @@ -117,7 +117,7 @@ func TestSpecIndex_PetstoreV2(t *testing.T) { func TestSpecIndex_XSOAR(t *testing.T) { - xsoar, _ := ioutil.ReadFile("test_files/xsoar.json") + xsoar, _ := ioutil.ReadFile("../test_specs/xsoar.json") var rootNode yaml.Node yaml.Unmarshal(xsoar, &rootNode) @@ -136,7 +136,7 @@ func TestSpecIndex_XSOAR(t *testing.T) { func TestSpecIndex_PetstoreV3(t *testing.T) { - asana, _ := ioutil.ReadFile("test_files/petstorev3.json") + asana, _ := ioutil.ReadFile("../test_specs/petstorev3.json") var rootNode yaml.Node yaml.Unmarshal(asana, &rootNode) @@ -164,7 +164,7 @@ func TestSpecIndex_PetstoreV3(t *testing.T) { func TestSpecIndex_BurgerShop(t *testing.T) { - burgershop, _ := ioutil.ReadFile("test_files/burgershop.openapi.yaml") + burgershop, _ := ioutil.ReadFile("../test_specs/burgershop.openapi.yaml") var rootNode yaml.Node yaml.Unmarshal(burgershop, &rootNode) @@ -234,7 +234,7 @@ func TestSpecIndex_BurgerShop(t *testing.T) { func TestSpecIndex_BurgerShop_AllTheComponents(t *testing.T) { - burgershop, _ := ioutil.ReadFile("test_files/all-the-components.yaml") + burgershop, _ := ioutil.ReadFile("../test_specs/all-the-components.yaml") var rootNode yaml.Node yaml.Unmarshal(burgershop, &rootNode) @@ -311,7 +311,7 @@ func TestSpecIndex_NoRoot(t *testing.T) { func TestSpecIndex_BurgerShopMixedRef(t *testing.T) { - spec, _ := ioutil.ReadFile("test_files/mixedref-burgershop.openapi.yaml") + spec, _ := ioutil.ReadFile("../test_specs/mixedref-burgershop.openapi.yaml") var rootNode yaml.Node yaml.Unmarshal(spec, &rootNode) @@ -335,7 +335,7 @@ func TestSpecIndex_BurgerShopMixedRef(t *testing.T) { func TestSpecIndex_TestEmptyBrokenReferences(t *testing.T) { - asana, _ := ioutil.ReadFile("test_files/badref-burgershop.openapi.yaml") + asana, _ := ioutil.ReadFile("../test_specs/badref-burgershop.openapi.yaml") var rootNode yaml.Node yaml.Unmarshal(asana, &rootNode) diff --git a/test_specs/all-the-components.yaml b/test_specs/all-the-components.yaml new file mode 100644 index 0000000..7e38490 --- /dev/null +++ b/test_specs/all-the-components.yaml @@ -0,0 +1,371 @@ +openapi: 3.0.1 +info: + title: Burger Shop + description: | + The best burger API at quobix. You can find the testiest burgers on the world + termsOfService: https://quobix.com + contact: + name: quobix + license: + name: Quobix + version: "1.2" +tags: + - name: "pizza" + description: pizza! + externalDocs: + description: "Find out more" + url: "https://quobix.com/" + - name: "Dressing" + description: "Variety of dressings: cheese, veggie, oil and a lot more" + externalDocs: + description: "Find out more information about our products)" + url: "https://quobix.com/" +servers: + - url: https://quobix.com/api + - url: https://pb33f.com/api +paths: + /burgers: + servers: + - url: https://somwhere.quobix.com/api + - url: https://pb33f.io/api + post: + operationId: createBurger + tags: + - "Meat" + summary: Create a new burger + description: A new burger for our menu, yummy yum yum. + requestBody: + description: Give us the new burger! + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + pbjBurger: + summary: A horrible, nutty, sticky mess. + value: + name: Peanut And Jelly + numPatties: 3 + cakeBurger: + summary: A sickly, sweet, atrocity + value: + name: Chocolate Cake Burger + numPatties: 5 + responses: + "200": + description: A tasty burger for you to eat. + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + quarterPounder: + summary: A juicy two handler sammich + value: + name: Quarter Pounder with Cheese + numPatties: 1 + filetOFish: + summary: A tasty treat from the sea + value: + name: Filet-O-Fish + numPatties: 1 + links: + LocateBurger: + operationId: locateBurger + parameters: + burgerId: '$response.body#/id' + description: Go and get a tasty burger + AnotherLocateBurger: + operationId: locateBurger + parameters: + burgerId: '$response.body#/id' + description: Go and get a another really tasty burger + "500": + description: Unexpected error creating a new burger. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: oh my goodness + value: + message: something went terribly wrong my friend, no new burger for you. + "422": + description: Unprocessable entity + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: invalid request + value: + message: unable to accept this request, looks bad, missing something. + /burgers/{burgerId}: + get: + servers: + - url: https://nowhere.quobix.com/api + - url: https://pb33f.net/api + operationId: locateBurger + tags: + - "Meat" + summary: Search a burger by ID - returns the burger with that identifier + description: Look up a tasty burger take it and enjoy it + parameters: + - in: path + name: burgerId + schema: + type: string + example: big-mac + description: the name of the burger. use this to order your food + required: true + responses: + "200": + description: A tasty burger for you to eat. Wide variety of products to choose from + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + quarterPounder: + summary: A juicy two handler sammich + value: + name: Quarter Pounder with Cheese + numPatties: 1 + filetOFish: + summary: A tasty treat from the sea + value: + name: Filet-O-Fish + numPatties: 1 + links: + ListBurgerDressings: + operationId: listBurgerDressings + parameters: + dressingId: 'something here' + description: 'Try the ketchup!' + "404": + description: Cannot find your burger. Sorry. We may have sold out of this type + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + notFound: + $ref: '#/components/examples/notFound' + "500": + description: Unexpected error. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: oh my stars + value: + message: something went terribly wrong my friend, burger location crashed! + /burgers/{burgerId}/dressings: + get: + operationId: listBurgerDressings + tags: + - "Dressing" + summary: Get a list of all dressings available + description: Same as the summary, look up a tasty burger, by its ID - the burger identifier + parameters: + - in: path + name: burgerId + schema: + type: string + example: big-mac + description: the name of the our fantastic burger. You can pick a name from our menu + required: true + callbacks: + myCallback: + $ref: '#/components/callbacks/myCallback' + responses: + "200": + links: + getBurger: + $ref: '#/components/links/getBurger' + description: an array of + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Dressing' + "404": + description: Cannot find your burger in which to list dressings. Sorry + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Unexpected error listing dressings for burger. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /dressings/{dressingId}: + get: + operationId: getDressing + tags: + - "Dressing" + summary: Get a specific dressing - you can choose the dressing from our menu + description: Same as the summary, get a dressing, by its ID + parameters: + - in: path + name: dressingId + schema: + type: string + example: cheese + description: This is the unique identifier for the dressing items. + required: true + responses: + "404": + description: Cannot find your dressing, sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Unexpected error getting a dressing. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /dressings: + get: + operationId: getAllDressings + tags: + - "Dressing" + summary: Get all dressings available in our store + description: Get all dressings and choose from them + responses: + "200": + $ref: '#/components/responses/dressingResponse' + "500": + description: Unexpected error. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +components: + responses: + dressingResponse: + description: an array of dressings + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Dressing' + callbacks: + myCallback: + '{$request.query.queryUrl}': + post: + requestBody: + description: Callback payload + content: + 'application/json': + schema: + $ref: '#/components/schemas/Fries' + responses: + '200': + description: callback successfully processed + links: + burger: + operationId: getBurger + parameters: + burgerId: $request.path.id + headers: + MyHeader: + description: a header + examples: + notFound: + summary: burger missing + value: + message: can't find a burger with that ID, we may have sold out my friend. + schemas: + Error: + type: object + description: Error defining what went wrong when providing a specification. The message should help indicate the issue clearly. + properties: + message: + type: string + description: returns the error message if something wrong happens + example: No such burger as 'Big-Whopper' + Burger: + type: object + description: The tastiest food on the planet you would love to eat everyday + required: + - name + - numPatties + properties: + name: + type: string + description: The name of your tasty burger - burger names are listed in our menus + example: Big Mac + numPatties: + type: integer + description: The number of burger patties used + example: 2 + numTomatoes: + type: integer + description: how many slices of orange goodness would you like? + example: 1 + Fries: + type: object + description: golden slices of happy fun joy + required: + - potatoShape + - favoriteDressings + - favoriteDrink + properties: + seasoning: + type: array + description: herbs and spices for your golden joy + items: + type: string + description: type of herb or spice used to liven up the yummy + example: salt + potatoShape: + type: string + description: what type of potato shape? wedges? shoestring? + example: Crispy Shoestring + favoriteDressings: + type: array + items: + $ref: '#/components/schemas/Dressing' + favoriteBurger: + $ref: '#/components/schemas/Burger' + favoriteDrink: + $ref: '#/components/schemas/Drink' + Dressing: + type: object + description: This is the object that contains the information about the content of the dressing + required: + - name + properties: + name: + type: string + description: The name of your dressing you can pick up from the menu + example: Cheese + Drink: + type: object + description: a frosty cold beverage can be coke or sprite + required: + - size + - drinkType + properties: + ice: + type: boolean + drinkType: + description: select from coke or sprite + enum: + - coke + - sprite + size: + type: string + description: what size man? S/M/L + example: M \ No newline at end of file diff --git a/test_specs/asana.yaml b/test_specs/asana.yaml new file mode 100644 index 0000000..7a4a7bf --- /dev/null +++ b/test_specs/asana.yaml @@ -0,0 +1,10263 @@ +openapi: 3.0.0 +servers: + - description: Main endpoint. + url: https://app.asana.com/api/1.0 +info: + contact: + name: Asana Support + url: https://asana.com/support + description: This is the interface for interacting with the [Asana Platform](https://developers.asana.com). Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/developer-docs/master/defs/asana_oas.yaml). + license: + name: Apache 2.0 + url: https://www.apache.org/licenses/LICENSE-2.0 + termsOfService: https://asana.com/terms + title: Asana + version: "1.0" + x-apisguru-categories: + - developer_tools + x-docs-schema-whitelist: + - AsanaResource + - AsanaNamedResource + - AttachmentResponse + - AttachmentCompact + - BatchResponse + - CustomFieldSettingResponse + - CustomFieldSettingCompact + - CustomFieldResponse + - CustomFieldCompact + - EnumOption + - EventResponse + - ErrorResponse + - GoalResponse + - GoalCompact + - JobResponse + - JobCompact + - OrganiztaionExportResponse + - OrganiztaionExportCompact + - PortfolioMembershipResponse + - PortfolioMembershipCompact + - PortfolioResponse + - PortfolioCompact + - ProjectMembershipResponse + - ProjectMembershipCompact + - ProjectResponse + - ProjectCompact + - ProjectStatusResponse + - ProjectStatusCompact + - SectionResponse + - SectionCompact + - StoryResponse + - StoryCompact + - TagResponse + - TagCompact + - TaskResponse + - TaskCompact + - TeamMembershipResponse + - TeamMembershipCompact + - TeamResponse + - TeamCompact + - UserTaskListResponse + - UserTaskListCompact + - UserResponse + - UserCompact + - WebhookFilter + - WebhookResponse + - WebhookCompact + - WorkspaceMembershipResponse + - WorkspaceMembershipCompact + - WorkspaceResponse + - WorkspaceCompact + x-logo: + url: https://d1gwm4cf8hecp4.cloudfront.net/images/favicons/apple-touch-icon-57x57.png + x-origin: + - format: openapi + url: https://raw.githubusercontent.com/Asana/developer-docs/master/defs/asana_oas.yaml + version: "3.0" + x-providerName: asana.com + x-public-description: This is the interface for interacting with the [Asana Platform](https://developers.asana.com). Our API reference is generated from our [OpenAPI spec] (https://raw.githubusercontent.com/Asana/developer-docs/master/defs/asana_oas.yaml). +security: + - personalAccessToken: [] + - oauth2: [] +tags: + - description: An *attachment* object represents any file attached to a task in Asana, whether it’s an uploaded file or one associated via a third-party service such as Dropbox or Google Drive. + name: Attachments + - description: |- + There are many cases where you want to accomplish a variety of work in the Asana API but want to minimize the number of HTTP requests you make. For example: + + * Modern browsers limit the number of requests that a single web page can + make at once. + * Mobile apps will use more battery life to keep the cellular radio on + when making a series of requests. + * There is an overhead cost to developing software that can make multiple + requests in parallel. + * Some cloud platforms handle parallelism poorly, or disallow it + entirely. + + + To make development easier in these use cases, Asana provides a **batch API** that enables developers to perform multiple “actions” by making only a single HTTP request. + + #### Making a Batch Request + + To make a batch request, send a `POST` request to `/batch`. Like other `POST` endpoints, the body should contain a `data` envelope. Inside this envelope should be a single `actions` field, containing a list of “action” objects. Each action represents a standard request to an existing endpoint in the Asana API. + + **The maximum number of actions allowed in a single batch request is 10**. Making a batch request with no actions in it will result in a `400 Bad Request`. + + When the batch API receives the list of actions to execute, it will dispatch those actions to the already-implemented endpoints specified by the `relative_path` and `method` for each action. This happens in parallel, so all actions in the request will be processed simultaneously. There is no guarantee of the execution order for these actions, nor is there a way to use the output of one action as the input of another action (such as creating a task and then commenting on it). + + The response to the batch request will contain (within the `data` envelope) a list of result objects, one for each action. The results are guaranteed to be in the same order as the actions in the request, e.g., the first result in the response corresponds to the first action in the request. + + The batch API will always attempt to return a `200 Success` response with individual result objects for each individual action in the request. Only in certain cases (such as missing authorization or malformed JSON in the body) will the entire request fail with another status code. Even if every individual action in the request fails, the batch API will still return a `200 Success` response, and each result object in the response will contain the errors encountered with each action. + + #### Rate Limiting + + The batch API fully respects all of our rate limiting. This means that a batch request counts against *both* the standard rate limiter and the concurrent request limiter as though you had made a separate HTTP request for every individual action. For example, a batch request with five actions counts as five separate requests in the standard rate limiter, and counts as five concurrent requests in the concurrent request limiter. The batch request itself incurs no cost. + + If any of the actions in a batch request would exceed any of the enforced limits, the *entire* request will fail with a `429 Too Many Requests` error. This is to prevent the unpredictability of which actions might succeed if not all of them could succeed. + + #### Restrictions + + Not every endpoint can be accessed through the batch API. Specifically, the following actions cannot be taken and will result in a `400 Bad Request` for that action: + + * Uploading attachments + * Creating, getting, or deleting organization exports + * Any SCIM operations + * Nested calls to the batch API + name: Batch API + - description: |- + In the Asana application, Tasks, Projects, and Portfolios can hold user-specified Custom Fields which provide extra information; for example, a priority value or a number representing the time required to complete a Task. This lets a user define the type of information that each Item within a Project or Portfolio can contain in addition to the built-in fields that Asana provides. + + **Note:** Custom Fields are a premium feature. Integrations which work with Custom Fields need to handle an assortment of use cases for free and premium users in context of free and premium organizations. For a detailed examination of to what data users will have access in different circumstances, read the section below on access control. + + `display_value` is a read-only field that will always be a string. For apps that use custom fields, this is a great way to safely display/export the value of a custom field, regardless of its type. We suggest apps use this field in order to future-proof for changes to Custom Fields. + + The characteristics of Custom Fields are: + + * There is metadata that defines the Custom Field. This metadata can be shared across an entire workspace, or be specific to a Project or Portfolio. + * Creating a Custom Field Setting on a Project or Portfolio means each direct child will have the custom field. This is conceptually akin to adding columns in a database or a spreadsheet: every Task (row) in the Project (table) can contain information for that field, including "blank" values, i.e. `null` data. For Portfolio custom fields, every Project (row) in the Portfolio (table) will contain information for the custom field. + * Custom Field Settings only go one child deep. Meaning a custom field setting on a portfolio will give each project the custom field, but not each task within those projects. + * Tasks have Custom Field _values_ assigned to them. + + A brief example: let's imagine that an organization has defined a Custom Field for "Priority". This field is of `enum` type and can have user-defined values of `Low`, `Medium`, or `High`. This is the field metadata, and it is visible within, and shared across, the entire organization. + + A Project is then created in the organization, called "Bugs", and the "Priority" Custom Field is associated with that Project. This will allow all Tasks within the "Bugs" Project to have an associated "Priority". + + A new Task is created within "Bugs". This Task, then, has a field named "Priority" which can take on the Custom Field value of one of `[null]`, `Low`, `Medium`, and `High`. + + These Custom Fields are accessible via the API through a number of endpoints at the top level (e.g. `/custom_fields` and `/custom_field_settings`) and through calls on Workspaces, Portfolios, Projects, and Tasks resources. The API also provides a way to fetch both the metadata and data which define each particular Custom Field, so that a client application may render proper UI to display or edit the values. + + Custom Field aware integrations need to be aware of the basic types that Custom Fields can adopt. These types are: + + * `text` - an arbitrary, relatively short string of text + * `number` - a number with a defined level of precision + * `enum` - a selection from a defined list of options + + Text fields are currently limited to 1024 characters. On Tasks, their Custom Field value will have a `text_value` property to represent this field. + + Number fields can have an arbitrary `precision` associated with them; for example, a precision of `2` would round its value to the second (hundredths) place, i.e. 1.2345 would round to 1.23. On Tasks, the Custom Field value will have a `number_value` property to represent this field. + + Enum fields represent a selection from a list of options. On the metadata, they will contain all of the options in an array. Each option has 4 properties: + + * `gid` - the gid of this enum option. Note that this is the gid of the _option_ - the Custom Field itself has a separate `gid`. + * `name` - the name of the option, e.g. "Choice #1" + * `enabled` - whether this field is enabled. Disabled fields are not available to choose from when disabled, and are visually hidden in the Asana application, but they remain in the metadata for Custom Field values which were set to the option before the option was disabled. + * `color` - a color associated with this choice. + + On the Task's Custom Field value, the enum will have an `enum_value` property which will be the same as one of the choices from the list defined in the Custom Field metadata. + + #### Querying an organization for its Custom Fields + + For Custom Fields shared across the workspace or organization, the Workspace [can be queried](/docs/get-a-workspace-39-s-custom-fields) for its list of defined Custom Fields. Like other collection queries, the fields will be returned as a compact record; slightly different from most other compact records is the fact that the compact record for Custom Fields includes `type` as well as `gid` and `name`. + + #### Accessing Custom Field definitions + + The [Custom Fields](/docs/get-a-custom-field) reference describes how the metadata which defines a Custom Field is accessed. A GET request with a `gid` can be issued on the `/custom_fields` endpoint to fetch the full definition of a single Custom Field given its `gid` from (for instance) listing all Custom Fields on a Workspace, or getting the `gid` from a Custom Field Settings object or a Task. + + #### Associating Custom Fields with a Project or Portfolio + + A mapping between a Custom Field and a Project or Portfolio is handled with a [Custom Field Settings](/docs/asana-custom-field-settings) object. This object contains a reference for each of the Custom Field and the Project or Porfolio, as well as additional information about the status of that particular Custom Field. For instance, `is_important`, which defines whether or not the custom field will appear in the list/grid on the Asana application. + + #### Accessing Custom Field values on Tasks or Projects + + The [Tasks](/docs/get-a-task) reference has information on how Custom Fields look on Tasks. Custom Fields will return as an array on the property `custom_fields`, and each entry will contain, side-by-side, the compact representation of the Custom Field metadata and a `{typename}_value` property that stores the value set for the Custom Field. + + Of particular note is that the top-level `gid` of each entry in the `custom_fields` array is the `gid` of the Custom Field metadata, as it is the compact representation of this metadata. This can be used to refer to the full metadata by making a request to the `/custom_fields/{custom_fields_id}` endpoint as described above. + + Custom Fields can be set just as in the Asana-defined fields on a task via POST or PUT requests. You can see an example on the [update a task](/docs/update-a-task) endpoint. + + Custom Fields on projects follow this same pattern. + + #### Warning: Program defensively with regards to Custom Field definitions + + Asana application users have the ability to change the definitions of Custom Field metadata. This means that as you write scripts or applications to work with them, it's possible for the definitions to change at any time, which may cause an application using them to break or malfunction if it makes assumptions about the metadata for a particular Custom Field. When using Custom Fields, it is a good idea to program *defensively*, meaning you your application should double-check that the Custom Field metadata is what it expects. + + Storing the state of the Custom Field metadata for too long if you dynamically create a model for it can cause your model to become unsynchronized with the model stored in Asana. If you encounter (for example) an `enum` value on a Task that does not match any option in your metadata model, your metadata model has become out of date with the Custom Field metadata. + + **Note:** We are currently studying proposals for future implementations to more elegantly handle the modification of Custom Field metadata for application integrations. + + #### Enabled and Disabled Values + + When information that is contained in a Custom Field value loses a logical association with its metadata definition, the value becomes disabled. This can happen in a couple of simple ways, for example, if you remove the Custom Field metadata from a Project, or move a Task with a Custom Field to a different Project which does not have the Custom Field metadata associated with it. The value remains on the Task, and the Custom Field metadata can still be found and examined, but as the context in which the Custom Field makes sense is gone, the Custom Field cannot change its value; it can only be cleared. + + Note: Tasks that are associated with multiple Projects do not become disabled, so long as at least one of the Projects is still associated with the Custom Field metadata. In other words, Tasks with multiple Projects will retain logically associated to the set of Custom Field metadata represented by all of their Projects. + + Moving the Task back under a Project with that Custom Field applied to it or applying the Custom Field metadata to the current Project will return the Custom Field value to an enabled state. In this scenario, the Custom Field will be re-enabled and editable again. + + In the Asana application, disabled fields are grayed out and not allowed to change, other than to be discarded. In the API, we return a property `enabled: false` to inform the external application that the value has been disabled. + + Note that the API enforces the same operations on disabled Custom Field values as hold in the Asana application: they may not have their values changed, since the lack of context for the values of a custom field in general doesn't provide enough information to know what new values should be. Setting the Custom Field value to `null` will clear and remove the Custom Field value from the Task. + + #### Custom Field access control + + Custom Fields are a complex feature of the Asana platform, and their access in the Asana application and in the API vary based on the status of the user and project. When building your application, it's best to be defensive and not assume the given user will have read or write access to a custom field, and fail gracefully when this occurs. + name: Custom Fields + - description: Custom fields are attached to a particular project with the Custom Field Settings resource. This resource both represents the many-to-many join of the Custom Field and Project as well as stores information that is relevant to that particular pairing; for instance, the `is_important` property determines some possible application-specific handling of that custom field. + name: Custom Field Settings + - description: |- + An *event* is an object representing a change to a resource that was observed by an event subscription. + + In general, requesting events on a resource is faster and subject to higher rate limits than requesting the resource itself. Additionally, change events bubble up - listening to events on a project would include when stories are added to tasks in the project, even on subtasks. + + Establish an initial sync token by making a request with no sync token. The response will be a `412` error - the same as if the sync token had expired. + + Subsequent requests should always provide the sync token from the immediately preceding call. + + Sync tokens may not be valid if you attempt to go ‘backward’ in the history by requesting previous tokens, though re-requesting the current sync token is generally safe, and will always return the same results. + + When you receive a `412 Precondition Failed` error, it means that the sync token is either invalid or expired. If you are attempting to keep a set of data in sync, this signals you may need to re-crawl the data. + + Sync tokens always expire after 24 hours, but may expire sooner, depending on load on the service. + name: Events + - description: A `goal` is an object in the goal-tracking system that helps your organization drive measurable results. + name: Goals + - description: |- + Jobs represent processes that handle asynchronous work. + Jobs are created when an endpoint requests an action that will be handled asynchronously. Such as project or task duplication. + Only the creator of the duplication process can access the duplication status of the new object. + name: Jobs + - description: |- + An *organization_export* object represents a request to export the complete data of an Organization in JSON format. + + To export an Organization using this API: + + * Create an `organization_export` + [request](/docs/create-an-organization-export-request) + and store the id that is returned. + * Request the `organization_export` every few minutes, until the + `state` field contains ‘finished’. + * Download the file located at the URL in the `download_url` field. * Exports can take a long time, from several minutes to a few hours + for large Organizations. + + + *Note: These endpoints are only available to [Service Accounts](https://asana.com/guide/help/premium/service-accounts) of an [Enterprise](https://asana.com/enterprise) Organization.* + name: Organization Exports + - description: |- + A `portfolio` gives a high-level overview of the status of multiple initiatives in Asana. Portfolios provide a dashboard overview of the state of multiple projects, including a progress report and the most recent [project status](/docs/asana-project-statuses) update. + Portfolios have some restrictions on size. Each portfolio has a max of 250 items and, like projects, a max of 20 custom fields. + name: Portfolios + - description: This object determines if a user is a member of a portfolio. + name: Portfolio Memberships + - description: |- + A `project` represents a prioritized list of tasks in Asana or a board with columns of tasks represented as cards. It exists in a single workspace or organization and is accessible to a subset of users in that workspace or organization, depending on its permissions. + + Projects in organizations are shared with a single team. You cannot currently change the team of a project via the API. Non-organization workspaces do not have teams and so you should not specify the team of project in a regular workspace. + + Followers of a project are a subset of the members of that project. Followers of a project will receive all updates including tasks created, added and removed from that project. Members of the project have access to and will receive status updates of the project. Adding followers to a project will add them as members if they are not already, removing followers from a project will not affect membership. + name: Projects + - description: With the introduction of “comment-only” projects in Asana, a user’s membership in a project comes with associated permissions. These permissions (whether a user has full access to the project or comment-only access) are accessible through the project memberships endpoints described here. + name: Project Memberships + - description: |- + A *project status* is an update on the progress of a particular project, and is sent out to all project followers when created. These updates include both text describing the update and a color code intended to represent the overall state of the project: "green" for projects that are on track, "yellow" for projects at risk, "red" for projects that are behind, and "blue" for projects on hold. + + Project statuses can be created and deleted, but not modified. + name: Project Statuses + - description: |- + A *section* is a subdivision of a project that groups tasks together. It can either be a header above a list of tasks in a list view or a column in a board view of a project. + + Sections are largely a shared idiom in Asana’s API for both list and board views of a project regardless of the project’s layout. + + The ‘memberships’ property when [getting a task](/docs/get-a-task) will return the information for the section or the column under ‘section’ in the response. + name: Sections + - description: |- + *See [our forum post](https://forum.asana.com/t/no-more-parsing-story-text-new-fields-on-stories/42924) for more info on when conditional fields are returned.* + + A *story* represents an activity associated with an object in the Asana system. Stories are generated by the system whenever users take actions such as creating or assigning tasks, or moving tasks between projects. *Comments* are also a form of user-generated story. + name: Stories + - description: |- + A tag is a label that can be attached to any task in Asana. It exists in a single workspace or organization. + + Tags have some metadata associated with them, but it is possible that we will simplify them in the future so it is not encouraged to rely too heavily on it. Unlike projects, tags do not provide any ordering on the tasks they are associated with. + name: Tags + - description: |- + The task is the basic object around which many operations in Asana are centered. In the Asana application, multiple tasks populate the middle pane according to some view parameters, and the set of selected tasks determines the more detailed information presented in the details pane. + + Sections are unique in that they will be included in the *memberships* field of task objects returned in the API when the task is within a section. They can also be used to manipulate the ordering of a task within a project. + + [Queries](/docs/get-a-set-of-tasks) return a compact representation of each object which is typically the id and name fields. Interested in a specific set of fields or all of the fields? Use [field selectors](/docs/input-output-options) to manipulate what data is included in a response. + name: Tasks + - description: A *team* is used to group related projects and people together within an organization. Each project in an organization is associated with a team. + name: Teams + - description: This object determines if a user is a member of a team. + name: Team Memberships + - description: A `time_period` is an object that represents a domain-scoped date range that can be set on `Goals`. + name: Time Periods + - description: The typeahead search API provides search for objects from a single workspace. + name: Typeahead + - description: |- + A user object represents an account in Asana that can be given access to various workspaces, projects, and tasks. + + Like other objects in the system, users are referred to by numerical IDs. However, the special string identifier `me` can be used anywhere a user ID is accepted, to refer to the current authenticated user. + name: Users + - description: A user task list represents the tasks assigned to a particular user. + name: User Task Lists + - description: |- + *Note: Recently, some users have seen intermittent delays with webhook event distributions. We are in the process of transferring the webhooks system to a more reliable infrastructure while also iteratively improving the current system. As such, for the time being we advise against using webhooks for functionality beyond logging (e.g., syncing state with real-time notification data).* + *If you experience latency issues, we recommend using webhooks in conjunction with fetching the resource periodically (e.g. [GET a task](https://developers.asana.com/docs/get-a-task)). More details and ongoing updates can be found in [this post](https://forum.asana.com/t/upcoming-improvements-to-our-webhooks-system/126570) in the developer forum.* + Webhooks allow an application to be notified of changes in Asana. + + This is similar to our [Events](/docs/asana-events) resource, but webhooks "push" events via HTTP `POST` rather than expecting integrations to repeatedly "poll" for them. For services that are already accessible on the Internet this is often more convenient and efficient. + + However, webhooks _require_ a server to be accessible over the internet at all times to receive the event. For most simple integrations, Events provide much of the same benefits while using a significantly simpler implementation which does not require maintaining an internet-accessible server. + + #### The webhook "handshake" + In order to ensure that the receiving server is available to receive incoming events from a webhook Asana will `POST` to the requested target endpoint during the webhook creation request. In other words, the outgoing webhook creation request will wait to return until another full `POST` request from Asana's servers to the target has been completed, *then* the webhook creation request can return with a successful response. + + *Note: this means that your server must be able to handle being blocked on the outgoing create request while still being able to receive and handle an incoming request. A common reason that webhook handshakes fail is that servers are not able to asynchronously handle the handshake request.* + + Included in the webhook handshake is a HTTP header called `X-Hook-Secret`. To successfully complete the handshake the receiving server should echo back the same header with the same value and a `200 OK` or `204 No Content` response code. + + The purpose of this header is to provide a shared secret that both Asana and the receiving server both store--this is the only time it will be transmitted. In future webhook events Asana will use this key to compute a signature over the webhook callback request's body which can be used to verify that the incoming request was genuine (details below). We strongly recommend that you take advantage of this security feature and reject webhooks that have an invalid signature. + + #### Receiving Events + + Because multiple events often happen in short succession, a webhook payload is designed to be able to transmit multiple events at once. The schema of these events is described in [Event](/docs/tocS_Event). + + The HTTP POST that the target receives contains: + + + * An `X-Hook-Signature` header, which allows verifying that the payload + is genuine. The signature is a SHA256 HMAC signature computed on the + request body using the shared secret transmitted during the handshake. + Verification is **strongly recommended**, as it would otherwise be + possible for an attacker to POST a malicious payload to the same + endpoint. + * A JSON body with a single key, `events`, containing an array of the + events that have occurred since the last webhook delivery. (Note that this + list may be empty, as periodically we send a "heartbeat" webhook to + verify that the endpoint is still available.) + + + Note that events are "skinny" and contain only some basic details of the change, not the whole resource. We expect integrations to make additional calls to the API to retrieve the latest state from Asana. + + #### Filtering + Webhook events will "propagate up" from contained objects through to parent objects--for instance, changes to comments will be sent to webhooks on the parent task and to ones on the task's projects. In this way a webhook on a project will be notified of all changes that occur in all of its tasks, subtasks of those tasks, and comments on those tasks and subtasks. + + This can be a lot of data, some of which might not be relevant to a particular integration, so Asana's webhooks have a filtering feature which allows integrations to specify only the types of changes that they care about. By specifying the list of [WebhookFilter](/docs/tocS_WebhookFilter)s on webhook creation an integration can select just the subset of events it wants to receive. When filters are specified on the webhook events will only be delivered if they pass any of the filters specified when creating the webhook. + + To reduce the volume of data to transfer, webhooks created on teams, portfolios, and workspaces *must* specify filters. In addition, the set of event filters that can be placed on a team-level or workspace-level webhook is more limited than filters for webhooks that are created on lower-level resources: + + + * Webhook events from tasks, subtasks, and stories won't be propagated + to these higher-level webhooks, so all changes on these resources are + automatically filtered out. + * Webhook events from `project` resources can be filtered for these + `action`s: `added`, `removed`, `deleted`, `undeleted`, and `changed`. + * Webhook events from `team_membership` resources can be filtered to + `action`s `added` and `removed`. + * Webhook events from `workspace_membership` resources can be filtered + to `added` and `removed`. + + + #### Error Handling and Retry + + If we attempt to send a webhook payload and we receive an error status code, or the request times out, we will retry delivery with exponential backoff. In general, if your servers are not available for an hour, you can expect it to take no longer than approximately an hour after they come back before the paused delivery resumes. However, if we are unable to deliver a message for 24 hours the webhook will be deactivated. + #### Webhook Heartbeat Events + Webhooks keep track of the last time that delivery succeeded, and this time is updated with each success. To help facilitate this, webhooks have a “heartbeat” that will deliver an empty payload at the initial handshake, and then every eight hours. This way, even if there is no activity on the resource, the last success time (i.e `last_success_at`) will still be updated continuously. + #### Resources and Actions + This is not an exhaustive list, but should cover the most common use cases. + + + * Attachment - deleted, undeleted + * Portfolio - added, deleted, removed + * Project - added, changed, deleted, removed, undeleted + * Project Membership - added, removed + * Section - added, changed, deleted, undeleted + * Story - added, removed, undeleted + * Tag - added, changed, deleted, undeleted + * Task - added, changed, deleted, removed, undeleted + * Team - added, changed, deleted + * Team Membership - added, removed + * Workspace - added, removed, changed + * Workspace Memberships - added, removed + + + #### Webhook Limits + + Webhooks have two different limits + + * 1k limit per resource in Asana. (If 10 apps each have 100 webhooks + watching the same resource, no more webhooks can be placed on the + webhook. `/events` streams count towards this limit) + * 10k per user-app (An app can have 10k webhooks for EACH user) + + #### Example Integration: Webhook Inspector + The [Webhook Inspector](https://github.com/Asana/devrel-examples/tree/master/python/webhooks) is a Python script that demonstrates the features of Asana webhooks, including how to both properly set them up and receive them. By using this script, you can create a webhook and log the contents of incoming notifications to your console. + To use this demo, be sure to generate a new [personal access token](https://developers.asana.com/docs/personal-access-token), then follow the instructions in README. + name: Webhooks + - description: |- + A *workspace* is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace. + + An *organization* is a special kind of workspace that represents a company. In an organization, you can group your projects into teams. You can read more about how organizations work on the Asana Guide. To tell if your workspace is an organization or not, check its `is_organization` property. + + Over time, we intend to migrate most workspaces into organizations and to release more organization-specific functionality. We may eventually deprecate using workspace-based APIs for organizations. Currently, and until after some reasonable grace period following any further announcements, you can still reference organizations in any `workspace` parameter. + name: Workspaces + - description: This object determines if a user is a member of a workspace. + name: Workspace Memberships +paths: + "/attachments/{attachment_gid}": + delete: + description: |- + Deletes a specific, existing attachment. + + Returns an empty data record. + operationId: deleteAttachment + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified attachment. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete an attachment + tags: + - Attachments + get: + description: Get the full record for a single attachment. + operationId: getAttachment + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AttachmentResponse" + type: object + description: Successfully retrieved the record for a single attachment. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "424": + $ref: "#/components/responses/TooManyRequests" + "500": + $ref: "#/components/responses/InternalServerError" + "501": + $ref: "#/components/responses/BadGateway" + "503": + $ref: "#/components/responses/ServiceUnavailable" + "504": + $ref: "#/components/responses/GatewayTimeout" + summary: Get an attachment + tags: + - Attachments + parameters: + - $ref: "#/components/parameters/attachment_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /batch: + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Make multiple requests in parallel to Asana's API. + operationId: createBatchRequest + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/BatchRequest" + type: object + description: The requests to batch together via the Batch API. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/BatchResponse" + type: array + type: object + description: Successfully completed the requested batch API operations. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Submit parallel requests + tags: + - Batch API + /custom_fields: + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + post: + description: |- + Creates a new custom field in a workspace. Every custom field is required + to be created in a specific workspace, and this workspace cannot be + changed once set. + + A custom field’s name must be unique within a workspace and not conflict + with names of existing task properties such as ‘Due Date’ or ‘Assignee’. + A custom field’s type must be one of ‘text’, ‘enum’, or ‘number’. + + Returns the full record of the newly created custom field. + operationId: createCustomField + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/CustomFieldRequest" + type: object + description: The custom field object to create. + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/CustomFieldResponse" + type: object + description: Custom field successfully created. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a custom field + tags: + - Custom Fields + "/custom_fields/{custom_field_gid}": + delete: + description: |- + A specific, existing custom field can be deleted by making a DELETE request on the URL for that custom field. + Locked custom fields can only be deleted by the user who locked the field. + Returns an empty data record. + operationId: deleteCustomField + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: The custom field was successfully deleted. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a custom field + tags: + - Custom Fields + get: + description: |- + Get the complete definition of a custom field’s metadata. + + Since custom fields can be defined for one of a number of types, and + these types have different data and behaviors, there are fields that are + relevant to a particular type. For instance, as noted above, enum_options + is only relevant for the enum type and defines the set of choices that + the enum could represent. The examples below show some of these + type-specific custom field definitions. + operationId: getCustomField + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/CustomFieldResponse" + type: object + description: Successfully retrieved the complete definition of a custom field’s metadata. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a custom field + tags: + - Custom Fields + parameters: + - $ref: "#/components/parameters/custom_field_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + A specific, existing custom field can be updated by making a PUT request on the URL for that custom field. Only the fields provided in the `data` block will be updated; any unspecified fields will remain unchanged + When using this method, it is best to specify only those fields you wish to change, or else you may overwrite changes made by another user since you last retrieved the custom field. + A custom field’s `type` cannot be updated. + An enum custom field’s `enum_options` cannot be updated with this endpoint. Instead see “Work With Enum Options” for information on how to update `enum_options`. + Locked custom fields can only be updated by the user who locked the field. + Returns the complete updated custom field record. + operationId: updateCustomField + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/CustomFieldRequest" + type: object + description: The custom field object with all updated properties. + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/CustomFieldResponse" + type: object + description: The custom field was successfully updated. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a custom field + tags: + - Custom Fields + "/custom_fields/{custom_field_gid}/enum_options": + parameters: + - $ref: "#/components/parameters/custom_field_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + post: + description: |- + Creates an enum option and adds it to this custom field’s list of enum options. A custom field can have at most 50 enum options (including disabled options). By default new enum options are inserted at the end of a custom field’s list. + Locked custom fields can only have enum options added by the user who locked the field. + Returns the full record of the newly created enum option. + operationId: createEnumOptionForCustomField + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EnumOptionRequest" + type: object + description: The enum option object to create. + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EnumOption" + type: object + description: Custom field enum option successfully created. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create an enum option + tags: + - Custom Fields + "/custom_fields/{custom_field_gid}/enum_options/insert": + parameters: + - $ref: "#/components/parameters/custom_field_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Moves a particular enum option to be either before or after another specified enum option in the custom field. + Locked custom fields can only be reordered by the user who locked the field. + operationId: insertEnumOptionForCustomField + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EnumOptionInsertRequest" + type: object + description: The enum option object to create. + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EnumOption" + type: object + description: Custom field enum option successfully reordered. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Reorder a custom field's enum + tags: + - Custom Fields + "/enum_options/{enum_option_gid}": + parameters: + - description: Globally unique identifier for the enum option. + example: "124578" + in: path + name: enum_option_gid + required: true + schema: + type: string + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + Updates an existing enum option. Enum custom fields require at least one enabled enum option. + Locked custom fields can only be updated by the user who locked the field. + Returns the full record of the updated enum option. + operationId: updateEnumOption + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EnumOptionRequest" + type: object + description: The enum option object to update + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EnumOption" + type: object + description: Successfully updated the specified custom field enum. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update an enum option + tags: + - Custom Fields + /events: + get: + description: |- + Returns the full record for all events that have occurred since the sync + token was created. + + A GET request to the endpoint /[path_to_resource]/events can be made in + lieu of including the resource ID in the data for the request. + + *Note: The resource returned will be the resource that triggered the + event. This may be different from the one that the events were requested + for. For example, a subscription to a project will contain events for + tasks contained within the project.* + operationId: getEvents + responses: + "200": + content: + application/json: + schema: + description: The full record for all events that have occurred since the sync token was created. + properties: + data: + items: + $ref: "#/components/schemas/EventResponse" + type: array + sync: + description: A sync token to be used with the next call to the events endpoint. + example: de4774f6915eae04714ca93bb2f5ee81 + type: string + type: object + description: Successfully retrieved events. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get events on a resource + tags: + - Events + parameters: + - description: A resource ID to subscribe to. The resource can be a task or project. + example: "12345" + in: query + name: resource + required: true + schema: + type: string + - description: |- + A sync token received from the last request, or none on first sync. Events will be returned from the point in time that the sync token was generated. + *Note: On your first request, omit the sync token. The response will be the same as for an expired sync token, and will include a new valid sync token.If the sync token is too old (which may happen from time to time) the API will return a `412 Precondition Failed` error, and include a fresh sync token in the response.* + example: de4774f6915eae04714ca93bb2f5ee81 + in: query + name: sync + required: false + schema: + type: string + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /goals: + get: + description: Returns compact goal records. + operationId: getGoals + parameters: + - description: Globally unique identifier for supporting portfolio. + example: "159874" + in: query + name: portfolio + schema: + type: string + - description: Globally unique identifier for supporting project. + example: "512241" + in: query + name: project + schema: + type: string + - description: Filter to goals with is_workspace_level set to query value. Must be used with the workspace parameter. + example: false + in: query + name: is_workspace_level + schema: + type: boolean + - description: Globally unique identifier for the team. + example: "31326" + in: query + name: team + schema: + type: string + - description: Globally unique identifier for the workspace. + example: "31326" + in: query + name: workspace + schema: + type: string + - description: Globally unique identifiers for the time periods. + example: 221693,506165 + in: query + name: time_periods + schema: + items: + type: string + type: array + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/GoalCompact" + type: array + type: object + description: Successfully retrieved the requested goals. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get goals + tags: + - Goals + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + post: + description: |- + Creates a new goal in a workspace or team. + + Returns the full record of the newly created goal. + operationId: createGoal + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalRequest" + type: object + description: The goal to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully created a new goal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a goal + tags: + - Goals + "/goals/{goal_gid}": + delete: + description: |- + A specific, existing goal can be deleted by making a DELETE request on the URL for that goal. + + Returns an empty data record. + operationId: deleteGoal + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified goal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a goal + tags: + - Goals + get: + description: Returns the complete goal record for a single goal. + operationId: getGoal + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully retrieved the record for a single goal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a goal + tags: + - Goals + parameters: + - $ref: "#/components/parameters/goal_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + An existing goal can be updated by making a PUT request on the URL for + that goal. Only the fields provided in the `data` block will be updated; + any unspecified fields will remain unchanged. + + Returns the complete updated goal record. + operationId: updateGoal + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalRequest" + type: object + description: The updated fields for the goal. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully updated the goal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a goal + tags: + - Goals + "/goals/{goal_gid}/addFollowers": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds followers to a goal. Returns the goal the followers were added to. + Each goal can be associated with zero or more followers in the system. + Requests to add/remove followers, if successful, will return the complete updated goal record, described above. + operationId: addFollowers + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskAddFollowersRequest" + type: object + description: The followers to be added as collaborators + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully added users as collaborators. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a collaborator to a goal + tags: + - Goals + "/goals/{goal_gid}/addSubgoal": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds a subgoal to a parent goal. *A goal can have at most 100 subgoals, and a subgoal can have at most 4 parent goals. + + Returns an empty data block. + operationId: addSubgoal + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalAddSubgoalRequest" + type: object + description: The goal to add as a subgoal + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added goal as subgoal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a subgoal to a parent goal + tags: + - Goals + "/goals/{goal_gid}/addSupportingWork": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Adds a project or portfolio as supporting work for a goal. *A goal can have at most 10 supporting projects/portfolios, and a project/portfolio can support at most 10 goals*. + operationId: addSupportingWorkForGoal + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalAddSupportingWorkRequest" + type: object + description: The project/portfolio to set as supporting work + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully set specified project/portfolio as supporting work on the given goal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a project/portfolio as supporting work for a goal. + tags: + - Goals + "/goals/{goal_gid}/parentGoals": + get: + description: Returns a compact representation of all of the parent goals of a goal. + operationId: getParentGoalsForGoal + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/GoalCompact" + type: array + type: object + description: Successfully retrieved the specified goal's parent goals. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get parent goals from a goal + tags: + - Goals + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/goals/{goal_gid}/removeFollowers": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Removes followers from a goal. Returns the goal the followers were removed from. + Each goal can be associated with zero or more followers in the system. + Requests to add/remove followers, if successful, will return the complete updated goal record, described above. + operationId: removeFollowers + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskAddFollowersRequest" + type: object + description: The followers to be removed as collaborators + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully removed users as collaborators. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a collaborator from a goal + tags: + - Goals + "/goals/{goal_gid}/removeSubgoal": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Removes a goal as a subgoal of a specified parent goal. + operationId: removeSubgoal + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalRemoveSubgoalRequest" + type: object + description: The goal to be removed as a subgoal + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed subgoal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a subgoal from a goal + tags: + - Goals + "/goals/{goal_gid}/removeSupportingWork": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Removes a project or portfolio as supporting work for a goal. + operationId: removeSupportingWorkForGoal + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalAddSupportingWorkRequest" + type: object + description: The project/portfolio to remove as supporting work + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed specified project/portfolio as supporting work on the given goal. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a project/portfolio as supporting work for a goal. + tags: + - Goals + "/goals/{goal_gid}/setMetric": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Creates and adds a goal metric to a specified goal. Note that this replaces an existing goal metric if one already exists. + operationId: createGoalMetric + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalMetricRequest" + type: object + description: The goal metric to create. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully created a new goal metric. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a goal metric + tags: + - Goals + "/goals/{goal_gid}/setMetricCurrentValue": + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Updates a goal's existing metric's `current_number_value` if one exists, + otherwise responds with a 400 status code. + + Returns the complete updated goal metric record. + operationId: updateGoalMetric + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalMetricCurrentValueRequest" + type: object + description: The updated fields for the goal metric. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/GoalResponse" + type: object + description: Successfully updated the goal metric. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a goal metric + tags: + - Goals + "/goals/{goal_gid}/subgoals": + get: + description: Returns a compact representation of all of the subgoals of a goal. + operationId: getSubgoalsForGoal + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/GoalCompact" + type: array + type: object + description: Successfully retrieved the specified goal's subgoals. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get subgoals from a goal + tags: + - Goals + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/goals/{goal_gid}/supportingWork": + get: + description: Returns any portfolios or projects associated with specified goal. + operationId: supportingWork + parameters: + - description: Automatically added + in: path + name: goal_gid + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectCompact" + type: array + type: object + description: Successfully returned supporting work. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get supporting work from a goal + tags: + - Goals + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/jobs/{job_gid}": + get: + description: Returns the full record for a job. + operationId: getJob + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/JobResponse" + type: object + description: Successfully retrieved Job. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a job by id + tags: + - Jobs + parameters: + - $ref: "#/components/parameters/job_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /organization_exports: + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + post: + description: This method creates a request to export an Organization. Asana will complete the export at some point after you create the request. + operationId: createOrganizationExport + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/OrganizationExportRequest" + type: object + description: The organization to export. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/OrganizationExportResponse" + type: object + description: Successfully created organization export request. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create an organization export request + tags: + - Organization Exports + "/organization_exports/{organization_export_gid}": + get: + description: Returns details of a previously-requested Organization export. + operationId: getOrganizationExport + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/OrganizationExportResponse" + type: object + description: Successfully retrieved organization export object. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get details on an org export request + tags: + - Organization Exports + parameters: + - $ref: "#/components/parameters/organization_export_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/organizations/{workspace_gid}/teams": + get: + description: Returns the compact records for all teams in the organization visible to the authorized user. + operationId: getTeamsForOrganization + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TeamCompact" + type: array + type: object + description: Returns the team records for all teams in the organization or workspace accessible to the authenticated user. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get teams in an organization + tags: + - Teams + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + /portfolio_memberships: + get: + description: Returns a list of portfolio memberships in compact representation. You must specify `portfolio`, `portfolio` and `user`, or `workspace` and `user`. + operationId: getPortfolioMemberships + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/PortfolioMembershipCompact" + type: array + type: object + description: Successfully retrieved portfolio memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple portfolio memberships + tags: + - Portfolio Memberships + parameters: + - $ref: "#/components/parameters/portfolio_query_param" + - $ref: "#/components/parameters/workspace_query_param" + - $ref: "#/components/parameters/user_query_param" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/portfolio_memberships/{portfolio_membership_gid}": + get: + description: Returns the complete portfolio record for a single portfolio membership. + operationId: getPortfolioMembership + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioMembershipResponse" + type: object + description: Successfully retrieved the requested portfolio membership. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a portfolio membership + tags: + - Portfolio Memberships + parameters: + - $ref: "#/components/parameters/portfolio_membership_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /portfolios: + get: + description: Returns a list of the portfolios in compact representation that are owned by the current API user. + operationId: getPortfolios + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - description: The workspace or organization to filter portfolios on. + example: "1331" + in: query + name: workspace + required: true + schema: + type: string + - description: The user who owns the portfolio. Currently, API users can only get a list of portfolios that they themselves own. + example: "14916" + in: query + name: owner + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/PortfolioCompact" + type: array + type: object + description: Successfully retrieved portfolios. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple portfolios + tags: + - Portfolios + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creates a new portfolio in the given workspace with the supplied name. + + Note that portfolios created in the Asana UI may have some state + (like the “Priority” custom field) which is automatically added + to the portfolio when it is created. Portfolios created via our + API will *not* be created with the same initial state to allow + integrations to create their own starting state on a portfolio. + operationId: createPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioRequest" + type: object + description: The portfolio to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioResponse" + type: object + description: Successfully created portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a portfolio + tags: + - Portfolios + "/portfolios/{portfolio_gid}": + delete: + description: |- + An existing portfolio can be deleted by making a DELETE request on + the URL for that portfolio. + + Returns an empty data record. + operationId: deletePortfolio + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a portfolio + tags: + - Portfolios + get: + description: Returns the complete portfolio record for a single portfolio. + operationId: getPortfolio + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioResponse" + type: object + description: Successfully retrieved the requested portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a portfolio + tags: + - Portfolios + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + An existing portfolio can be updated by making a PUT request on the URL for + that portfolio. Only the fields provided in the `data` block will be updated; + any unspecified fields will remain unchanged. + + Returns the complete updated portfolio record. + operationId: updatePortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioRequest" + type: object + description: The updated fields for the portfolio. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioResponse" + type: object + description: Successfully updated the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a portfolio + tags: + - Portfolios + "/portfolios/{portfolio_gid}/addCustomFieldSetting": + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + post: + description: Custom fields are associated with portfolios by way of custom field settings. This method creates a setting for the portfolio. + operationId: addCustomFieldSettingForPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AddCustomFieldSettingRequest" + type: object + description: Information about the custom field setting. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added the custom field to the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a custom field to a portfolio + tags: + - Portfolios + "/portfolios/{portfolio_gid}/addItem": + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Add an item to a portfolio. + Returns an empty data block. + operationId: addItemForPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioAddItemRequest" + type: object + description: Information about the item being inserted. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added the item to the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a portfolio item + tags: + - Portfolios + "/portfolios/{portfolio_gid}/addMembers": + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds the specified list of users as members of the portfolio. + Returns the updated portfolio record. + operationId: addMembersForPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AddMembersRequest" + type: object + description: Information about the members being added. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added members to the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add users to a portfolio + tags: + - Portfolios + "/portfolios/{portfolio_gid}/custom_field_settings": + get: + description: Returns a list of all of the custom fields settings on a portfolio, in compact form. + operationId: getCustomFieldSettingsForPortfolio + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/CustomFieldSettingResponse" + type: array + type: object + description: Successfully retrieved custom field settings objects for a portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a portfolio's custom fields + tags: + - Custom Field Settings + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/portfolios/{portfolio_gid}/items": + get: + description: Get a list of the items in compact form in a portfolio. + operationId: getItemsForPortfolio + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectCompact" + type: array + type: object + description: Successfully retrieved the requested portfolio's items. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get portfolio items + tags: + - Portfolios + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/portfolios/{portfolio_gid}/portfolio_memberships": + get: + description: Returns the compact portfolio membership records for the portfolio. + operationId: getPortfolioMembershipsForPortfolio + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/PortfolioMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested portfolio's memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get memberships from a portfolio + tags: + - Portfolio Memberships + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/user_query_param" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/portfolios/{portfolio_gid}/removeCustomFieldSetting": + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + post: + description: Removes a custom field setting from a portfolio. + operationId: removeCustomFieldSettingForPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/RemoveCustomFieldSettingRequest" + type: object + description: Information about the custom field setting being removed. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the custom field from the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a custom field from a portfolio + tags: + - Portfolios + "/portfolios/{portfolio_gid}/removeItem": + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Remove an item from a portfolio. + Returns an empty data block. + operationId: removeItemForPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/PortfolioRemoveItemRequest" + type: object + description: Information about the item being removed. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the item from the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a portfolio item + tags: + - Portfolios + "/portfolios/{portfolio_gid}/removeMembers": + parameters: + - $ref: "#/components/parameters/portfolio_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Removes the specified list of users from members of the portfolio. + Returns the updated portfolio record. + operationId: removeMembersForPortfolio + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/RemoveMembersRequest" + type: object + description: Information about the members being removed. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the members from the portfolio. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove users from a portfolio + tags: + - Portfolios + "/project_memberships/{project_membership_gid}": + get: + description: Returns the complete project record for a single project membership. + operationId: getProjectMembership + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectMembershipResponse" + type: object + description: Successfully retrieved the requested project membership. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a project membership + tags: + - Project Memberships + parameters: + - $ref: "#/components/parameters/project_membership_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/project_statuses/{project_status_gid}": + delete: + description: |- + Deletes a specific, existing project status update. + + Returns an empty data record. + operationId: deleteProjectStatus + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified project status. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a project status + tags: + - Project Statuses + get: + description: Returns the complete record for a single status update. + operationId: getProjectStatus + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectStatusResponse" + type: object + description: Successfully retrieved the specified project's status updates. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a project status + tags: + - Project Statuses + parameters: + - $ref: "#/components/parameters/project_status_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /projects: + get: + description: |- + Returns the compact project records for some filtered set of projects. Use one or more of the parameters provided to filter the projects returned. + *Note: This endpoint may timeout for large domains. Try filtering by team!* + operationId: getProjects + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - description: The workspace or organization to filter projects on. + example: "1331" + in: query + name: workspace + schema: + type: string + - description: The team to filter projects on. + example: "14916" + in: query + name: team + schema: + type: string + - $ref: "#/components/parameters/archived_query_param" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectCompact" + type: array + type: object + description: Successfully retrieved projects. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple projects + tags: + - Projects + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Create a new project in a workspace or team. + + Every project is required to be created in a specific workspace or + organization, and this cannot be changed once set. Note that you can use + the `workspace` parameter regardless of whether or not it is an + organization. + + If the workspace for your project is an organization, you must also + supply a `team` to share the project with. + + Returns the full record of the newly created project. + operationId: createProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectRequest" + type: object + description: The project to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectResponse" + type: object + description: Successfully retrieved projects. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a project + tags: + - Projects + "/projects/{project_gid}": + delete: + description: |- + A specific, existing project can be deleted by making a DELETE request on + the URL for that project. + + Returns an empty data record. + operationId: deleteProject + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a project + tags: + - Projects + get: + description: Returns the complete project record for a single project. + operationId: getProject + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectResponse" + type: object + description: Successfully retrieved the requested project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a project + tags: + - Projects + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + A specific, existing project can be updated by making a PUT request on + the URL for that project. Only the fields provided in the `data` block + will be updated; any unspecified fields will remain unchanged. + + When using this method, it is best to specify only those fields you wish + to change, or else you may overwrite changes made by another user since + you last retrieved the task. + + Returns the complete updated project record. + operationId: updateProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectRequest" + type: object + description: The updated fields for the project. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectResponse" + type: object + description: Successfully updated the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a project + tags: + - Projects + "/projects/{project_gid}/addCustomFieldSetting": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + post: + description: Custom fields are associated with projects by way of custom field settings. This method creates a setting for the project. + operationId: addCustomFieldSettingForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AddCustomFieldSettingRequest" + type: object + description: Information about the custom field setting. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/CustomFieldSettingResponse" + type: object + description: Successfully added the custom field to the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a custom field to a project + tags: + - Projects + "/projects/{project_gid}/addFollowers": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds the specified list of users as followers to the project. Followers are a subset of members, therefore if the users are not already members of the project they will also become members as a result of this operation. + Returns the updated project record. + operationId: addFollowersForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AddFollowersRequest" + type: object + description: Information about the followers being added. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added followers to the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add followers to a project + tags: + - Projects + "/projects/{project_gid}/addMembers": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds the specified list of users as members of the project. + Returns the updated project record. + operationId: addMembersForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AddMembersRequest" + type: object + description: Information about the members being added. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added members to the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add users to a project + tags: + - Projects + "/projects/{project_gid}/custom_field_settings": + get: + description: Returns a list of all of the custom fields settings on a project, in compact form. Note that, as in all queries to collections which return compact representation, `opt_fields` can be used to include more data than is returned in the compact representation. See the [getting started guide on input/output options](https://developers.asana.com/docs/#input-output-options) for more information. + operationId: getCustomFieldSettingsForProject + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/CustomFieldSettingResponse" + type: array + type: object + description: Successfully retrieved custom field settings objects for a project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a project's custom fields + tags: + - Custom Field Settings + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/projects/{project_gid}/duplicate": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Creates and returns a job that will asynchronously handle the duplication. + operationId: duplicateProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectDuplicateRequest" + type: object + description: Describes the duplicate's name and the elements that will be duplicated. + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/JobResponse" + type: object + description: Successfully created the job to handle duplication. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Duplicate a project + tags: + - Projects + "/projects/{project_gid}/project_memberships": + get: + description: Returns the compact project membership records for the project. + operationId: getProjectMembershipsForProject + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested project's memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get memberships from a project + tags: + - Project Memberships + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/user_query_param" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/projects/{project_gid}/project_statuses": + get: + description: Returns the compact project status update records for all updates on the project. + operationId: getProjectStatusesForProject + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectStatusCompact" + type: array + type: object + description: Successfully retrieved the specified project's status updates. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get statuses from a project + tags: + - Project Statuses + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creates a new status update on the project. + Returns the full record of the newly created project status update. + operationId: createProjectStatusForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectStatusRequest" + type: object + description: The project status to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectStatusResponse" + type: object + description: Successfully created a new story. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a project status + tags: + - Project Statuses + "/projects/{project_gid}/removeCustomFieldSetting": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + post: + description: Removes a custom field setting from a project. + operationId: removeCustomFieldSettingForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/RemoveCustomFieldSettingRequest" + type: object + description: Information about the custom field setting being removed. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the custom field from the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a custom field from a project + tags: + - Projects + "/projects/{project_gid}/removeFollowers": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Removes the specified list of users from following the project, this will not affect project membership status. + Returns the updated project record. + operationId: removeFollowersForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/RemoveFollowersRequest" + type: object + description: Information about the followers being removed. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed followers from the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove followers from a project + tags: + - Projects + "/projects/{project_gid}/removeMembers": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Removes the specified list of users from members of the project. + Returns the updated project record. + operationId: removeMembersForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/RemoveMembersRequest" + type: object + description: Information about the members being removed. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the members from the project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove users from a project + tags: + - Projects + "/projects/{project_gid}/sections": + get: + description: Returns the compact records for all sections in the specified project. + operationId: getSectionsForProject + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/SectionCompact" + type: array + type: object + description: Successfully retrieved sections in project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get sections in a project + tags: + - Sections + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creates a new section in a project. + Returns the full record of the newly created section. + operationId: createSectionForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/SectionRequest" + type: object + description: The section to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/SectionResponse" + type: object + description: Successfully created the specified section. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a section in a project + tags: + - Sections + "/projects/{project_gid}/sections/insert": + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Move sections relative to each other. One of + `before_section` or `after_section` is required. + + Sections cannot be moved between projects. + + Returns an empty data block. + operationId: insertSectionForProject + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectSectionInsertRequest" + type: object + description: The section's move action. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully moved the specified section. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Move or Insert sections + tags: + - Sections + "/projects/{project_gid}/task_counts": + get: + description: |- + Get an object that holds task count fields. **All fields are excluded by default**. You must [opt in](/docs/input-output-options) using `opt_fields` to get any information from this endpoint. + + This endpoint has an additional [rate limit](/docs/standard-rate-limits) and each field counts especially high against our [cost limits](/docs/cost-limits). + + Milestones are just tasks, so they are included in the `num_tasks`, `num_incomplete_tasks`, and `num_completed_tasks` counts. + operationId: getTaskCountsForProject + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskCountResponse" + type: object + description: Successfully retrieved the requested project's task counts. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get task count of a project + tags: + - Projects + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/projects/{project_gid}/tasks": + get: + description: Returns the compact task records for all tasks within the given project, ordered by their priority within the project. Tasks can exist in more than one project at a time. + operationId: getTasksForProject + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the requested project's tasks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get tasks from a project + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/project_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/sections/{section_gid}": + delete: + description: |- + A specific, existing section can be deleted by making a DELETE request on + the URL for that section. + + Note that sections must be empty to be deleted. + + The last remaining section cannot be deleted. + + Returns an empty data block. + operationId: deleteSection + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified section. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a section + tags: + - Sections + get: + description: Returns the complete record for a single section. + operationId: getSection + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/SectionResponse" + type: object + description: Successfully retrieved section. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a section + tags: + - Sections + parameters: + - $ref: "#/components/parameters/section_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + A specific, existing section can be updated by making a PUT request on + the URL for that project. Only the fields provided in the `data` block + will be updated; any unspecified fields will remain unchanged. (note that + at this time, the only field that can be updated is the `name` field.) + + When using this method, it is best to specify only those fields you wish + to change, or else you may overwrite changes made by another user since + you last retrieved the task. + + Returns the complete updated section record. + operationId: updateSection + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/SectionRequest" + type: object + description: The section to create. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/SectionResponse" + type: object + description: Successfully updated the specified section. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a section + tags: + - Sections + "/sections/{section_gid}/addTask": + parameters: + - $ref: "#/components/parameters/section_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Add a task to a specific, existing section. This will remove the task from other sections of the project. + + The task will be inserted at the top of a section unless an insert_before or insert_after parameter is declared. + + This does not work for separators (tasks with the resource_subtype of section). + operationId: addTaskForSection + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/SectionTaskInsertRequest" + type: object + description: The task and optionally the insert location. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add task to section + tags: + - Sections + "/sections/{section_gid}/tasks": + get: + description: "*Board view only*: Returns the compact section records for all tasks within the given section." + operationId: getTasksForSection + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the section's tasks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get tasks from a section + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/section_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/stories/{story_gid}": + delete: + description: |- + Deletes a story. A user can only delete stories they have created. + + Returns an empty data record. + operationId: deleteStory + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified story. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a story + tags: + - Stories + get: + description: Returns the full record for a single story. + operationId: getStory + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/StoryResponse" + type: object + description: Successfully retrieved the specified story. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a story + tags: + - Stories + parameters: + - $ref: "#/components/parameters/story_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: Updates the story and returns the full record for the updated story. Only comment stories can have their text updated, and only comment stories and attachment stories can be pinned. Only one of `text` and `html_text` can be specified. + operationId: updateStory + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/StoryRequest" + type: object + description: The comment story to update. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/StoryResponse" + type: object + description: Successfully retrieved the specified story. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a story + tags: + - Stories + /tags: + get: + description: Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned. + operationId: getTags + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - description: The workspace to filter tags on. + example: "1331" + in: query + name: workspace + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TagCompact" + type: array + type: object + description: Successfully retrieved the specified set of tags. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple tags + tags: + - Tags + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creates a new tag in a workspace or organization. + + Every tag is required to be created in a specific workspace or + organization, and this cannot be changed once set. Note that you can use + the workspace parameter regardless of whether or not it is an + organization. + + Returns the full record of the newly created tag. + operationId: createTag + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TagRequest" + type: object + description: The tag to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TagResponse" + type: object + description: Successfully created the newly specified tag. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a tag + tags: + - Tags + "/tags/{tag_gid}": + delete: + description: |- + A specific, existing tag can be deleted by making a DELETE request on + the URL for that tag. + + Returns an empty data record. + operationId: deleteTag + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified tag. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a tag + tags: + - Tags + get: + description: Returns the complete tag record for a single tag. + operationId: getTag + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TagResponse" + type: object + description: Successfully retrieved the specified tag. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a tag + tags: + - Tags + parameters: + - $ref: "#/components/parameters/tag_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + put: + description: |- + Updates the properties of a tag. Only the fields provided in the `data` + block will be updated; any unspecified fields will remain unchanged. + + When using this method, it is best to specify only those fields you wish + to change, or else you may overwrite changes made by another user since + you last retrieved the tag. + + Returns the complete updated tag record. + operationId: updateTag + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TagResponse" + type: object + description: Successfully updated the specified tag. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a tag + tags: + - Tags + "/tags/{tag_gid}/tasks": + get: + description: Returns the compact task records for all tasks with the given tag. Tasks can have more than one tag at a time. + operationId: getTasksForTag + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the tasks associated with the specified tag. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get tasks from a tag + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/tag_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + /tasks: + get: + description: |- + Returns the compact task records for some filtered set of tasks. Use one or more of the parameters provided to filter the tasks returned. You must specify a `project` or `tag` if you do not specify `assignee` and `workspace`. + + For more complex task retrieval, use [workspaces/{workspace_gid}/tasks/search](/docs/search-tasks-in-a-workspace). + operationId: getTasks + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - description: |- + The assignee to filter tasks on. + *Note: If you specify `assignee`, you must also specify the `workspace` to filter on.* + example: "14641" + in: query + name: assignee + schema: + type: string + x-env-variable: assignee + - description: The project to filter tasks on. + example: "321654" + in: query + name: project + schema: + type: string + x-env-variable: project + - description: |- + The section to filter tasks on. + *Note: Currently, this is only supported in board views.* + example: "321654" + in: query + name: section + schema: + type: string + x-env-variable: section + - description: |- + The workspace to filter tasks on. + *Note: If you specify `workspace`, you must also specify the `assignee` to filter on.* + example: "321654" + in: query + name: workspace + schema: + type: string + x-env-variable: workspace + - description: Only return tasks that are either incomplete or that have been completed since this time. + in: query + name: completed_since + schema: + example: 2012-02-22T02:06:58.158Z + format: date-time + type: string + - description: |- + Only return tasks that have been modified since the given time. + + *Note: A task is considered “modified” if any of its properties + change, or associations between it and other objects are modified + (e.g. a task being added to a project). A task is not considered + modified just because another object it is associated with (e.g. a + subtask) is modified. Actions that count as modifying the task + include assigning, renaming, completing, and adding stories.* + example: 2012-02-22T02:06:58.158Z + in: query + name: modified_since + schema: + format: date-time + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved requested tasks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple tasks + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creating a new task is as easy as POSTing to the `/tasks` endpoint with a + data block containing the fields you’d like to set on the task. Any + unspecified fields will take on default values. + + Every task is required to be created in a specific workspace, and this + workspace cannot be changed once set. The workspace need not be set + explicitly if you specify `projects` or a `parent` task instead. + operationId: createTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskRequest" + type: object + description: The task to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskResponse" + type: object + description: Successfully created a new task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a task + tags: + - Tasks + "/tasks/{task_gid}": + delete: + description: |- + A specific, existing task can be deleted by making a DELETE request on + the URL for that task. Deleted tasks go into the “trash” of the user + making the delete request. Tasks can be recovered from the trash within a + period of 30 days; afterward they are completely removed from the system. + + Returns an empty data record. + operationId: deleteTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully deleted the specified task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a task + tags: + - Tasks + get: + description: Returns the complete task record for a single task. + operationId: getTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskResponse" + type: object + description: Successfully retrieved the specified task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a task + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + A specific, existing task can be updated by making a PUT request on the + URL for that task. Only the fields provided in the `data` block will be + updated; any unspecified fields will remain unchanged. + + When using this method, it is best to specify only those fields you wish + to change, or else you may overwrite changes made by another user since + you last retrieved the task. + + Returns the complete updated task record. + operationId: updateTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskRequest" + type: object + description: The task to update. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskResponse" + type: object + description: Successfully updated the specified task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a task + tags: + - Tasks + "/tasks/{task_gid}/addDependencies": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Marks a set of tasks as dependencies of this task, if they are not already dependencies. *A task can have at most 15 dependencies*. + operationId: addDependenciesForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ModifyDependenciesRequest" + type: object + description: The list of tasks to set as dependencies. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully set the specified dependencies on the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Set dependencies for a task + tags: + - Tasks + "/tasks/{task_gid}/addDependents": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Marks a set of tasks as dependents of this task, if they are not already dependents. *A task can have at most 30 dependents*. + operationId: addDependentsForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ModifyDependentsRequest" + type: object + description: The list of tasks to add as dependents. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully set the specified dependents on the given task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Set dependents for a task + tags: + - Tasks + "/tasks/{task_gid}/addFollowers": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds followers to a task. Returns an empty data block. + Each task can be associated with zero or more followers in the system. + Requests to add/remove followers, if successful, will return the complete updated task record, described above. + operationId: addFollowersForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskAddFollowersRequest" + type: object + description: The followers to add to the task. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added the specified followers to the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add followers to a task + tags: + - Tasks + "/tasks/{task_gid}/addProject": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds the task to the specified project, in the optional location + specified. If no location arguments are given, the task will be added to + the end of the project. + + `addProject` can also be used to reorder a task within a project or + section that already contains it. + + At most one of `insert_before`, `insert_after`, or `section` should be + specified. Inserting into a section in an non-order-dependent way can be + done by specifying section, otherwise, to insert within a section in a + particular place, specify `insert_before` or `insert_after` and a task + within the section to anchor the position of this task. + + Returns an empty data block. + operationId: addProjectForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskAddProjectRequest" + type: object + description: The project to add the task to. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added the specified project to the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a project to a task + tags: + - Tasks + "/tasks/{task_gid}/addTag": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Adds a tag to a task. Returns an empty data block. + operationId: addTagForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskAddTagRequest" + type: object + description: The tag to add to the task. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully added the specified tag to the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a tag to a task + tags: + - Tasks + "/tasks/{task_gid}/attachments": + get: + description: Returns the compact records for all attachments on the task. + operationId: getAttachmentsForTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/AttachmentCompact" + type: array + type: object + description: Successfully retrieved the compact records for all attachments on the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get attachments for a task + tags: + - Attachments + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + post: + description: |- + Upload an attachment. + + This method uploads an attachment to a task and returns the compact + record for the created attachment object. It is not possible to attach + files from third party services such as Dropbox, Box & Google Drive via + the API. You must download the file content first and then upload it as + any other attachment. + + The 100MB size limit on attachments in Asana is enforced on this endpoint. + + This endpoint expects a multipart/form-data encoded request containing + the full contents of the file to be uploaded. + + Requests made should follow the HTTP/1.1 specification that line + terminators are of the form `CRLF` or `\r\n` outlined + [here](http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-01#Basic-Rules) + in order for the server to reliably and properly handle the request. + operationId: createAttachmentForTask + requestBody: + content: + multipart/form-data: + schema: + $ref: "#/components/schemas/AttachmentRequest" + description: |- + The file you want to upload. + + *Note when using curl:* + + Be sure to add an `‘@’` before the file path, and use the `--form` + option instead of the `-d` option. + + When uploading PDFs with curl, force the content-type to be pdf by + appending the content type to the file path: `--form + "file=@file.pdf;type=application/pdf"`. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/AttachmentResponse" + type: object + description: Successfully uploaded the attachment to the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Upload an attachment + tags: + - Attachments + "/tasks/{task_gid}/dependencies": + get: + description: Returns the compact representations of all of the dependencies of a task. + operationId: getDependenciesForTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the specified task's dependencies. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get dependencies from a task + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/tasks/{task_gid}/dependents": + get: + description: Returns the compact representations of all of the dependents of a task. + operationId: getDependentsForTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the specified dependents of the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get dependents from a task + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/tasks/{task_gid}/duplicate": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Creates and returns a job that will asynchronously handle the duplication. + operationId: duplicateTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskDuplicateRequest" + type: object + description: Describes the duplicate's name and the fields that will be duplicated. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/JobResponse" + type: object + description: Successfully created the job to handle duplication. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Duplicate a task + tags: + - Tasks + "/tasks/{task_gid}/projects": + get: + description: Returns a compact representation of all of the projects the task is in. + operationId: getProjectsForTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectCompact" + type: array + type: object + description: Successfully retrieved the projects for the given task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get projects a task is in + tags: + - Projects + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/tasks/{task_gid}/removeDependencies": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Unlinks a set of dependencies from this task. + operationId: removeDependenciesForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ModifyDependenciesRequest" + type: object + description: The list of tasks to unlink as dependencies. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/EmptyResponse" + type: array + type: object + description: Successfully unlinked the dependencies from the specified task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Unlink dependencies from a task + tags: + - Tasks + "/tasks/{task_gid}/removeDependents": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Unlinks a set of dependents from this task. + operationId: removeDependentsForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ModifyDependentsRequest" + type: object + description: The list of tasks to remove as dependents. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/EmptyResponse" + type: array + type: object + description: Successfully unlinked the specified tasks as dependents. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "402": + $ref: "#/components/responses/PaymentRequired" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Unlink dependents from a task + tags: + - Tasks + "/tasks/{task_gid}/removeFollowers": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Removes each of the specified followers from the task if they are following. Returns the complete, updated record for the affected task. + operationId: removeFollowerForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskRemoveFollowersRequest" + type: object + description: The followers to remove from the task. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the specified followers from the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove followers from a task + tags: + - Tasks + "/tasks/{task_gid}/removeProject": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Removes the task from the specified project. The task will still exist in + the system, but it will not be in the project anymore. + + Returns an empty data block. + operationId: removeProjectForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskRemoveProjectRequest" + type: object + description: The project to remove the task from. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the specified project from the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a project from a task + tags: + - Tasks + "/tasks/{task_gid}/removeTag": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Removes a tag from a task. Returns an empty data block. + operationId: removeTagForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskRemoveTagRequest" + type: object + description: The tag to remove from the task. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully removed the specified tag from the task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a tag from a task + tags: + - Tasks + "/tasks/{task_gid}/setParent": + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: parent, or no parent task at all. Returns an empty data block. When using `insert_before` and `insert_after`, at most one of those two options can be specified, and they must already be subtasks of the parent. + operationId: setParentForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskSetParentRequest" + type: object + description: The new parent of the subtask. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskResponse" + type: object + description: Successfully changed the parent of the specified subtask. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Set the parent of a task + tags: + - Tasks + "/tasks/{task_gid}/stories": + get: + description: Returns the compact records for all stories on the task. + operationId: getStoriesForTask + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/StoryCompact" + type: object + description: Successfully retrieved the specified task's stories. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get stories from a task + tags: + - Stories + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Adds a story to a task. This endpoint currently only allows for comment + stories to be created. The comment will be authored by the currently + authenticated user, and timestamped when the server receives the request. + + Returns the full record for the new story added to the task. + operationId: createStoryForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/StoryRequest" + type: object + description: The story to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/StoryResponse" + type: object + description: Successfully created a new story. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a story on a task + tags: + - Stories + "/tasks/{task_gid}/subtasks": + get: + description: Returns a compact representation of all of the subtasks of a task. + operationId: getSubtasksForTask + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the specified task's subtasks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get subtasks from a task + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: Creates a new subtask and adds it to the parent task. Returns the full record for the newly created subtask. + operationId: createSubtaskForTask + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskRequest" + type: object + description: The new subtask to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TaskResponse" + type: object + description: Successfully created the specified subtask. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a subtask + tags: + - Tasks + "/tasks/{task_gid}/tags": + get: + description: Get a compact representation of all of the tags the task has. + operationId: getTagsForTask + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TagCompact" + type: array + type: object + description: Successfully retrieved the tags for the given task. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a task's tags + tags: + - Tags + parameters: + - $ref: "#/components/parameters/task_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + /team_memberships: + get: + description: Returns compact team membership records. + operationId: getTeamMemberships + parameters: + - description: Globally unique identifier for the team. + example: "159874" + in: query + name: team + schema: + type: string + - description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. This parameter must be used with the workspace parameter. + example: "512241" + in: query + name: user + schema: + type: string + - description: Globally unique identifier for the workspace. This parameter must be used with the user parameter. + example: "31326" + in: query + name: workspace + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TeamMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested team memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get team memberships + tags: + - Team Memberships + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/team_memberships/{team_membership_gid}": + get: + description: Returns the complete team membership record for a single team membership. + operationId: getTeamMembership + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TeamMembershipResponse" + type: object + description: Successfully retrieved the requested team membership. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a team membership + tags: + - Team Memberships + parameters: + - $ref: "#/components/parameters/team_membership_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /teams: + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + post: + description: Creates a team within the current workspace. + operationId: createTeam + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TeamRequest" + type: object + description: The team to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TeamResponse" + type: object + description: Successfully created a new team. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a team + tags: + - Teams + "/teams/{team_gid}": + get: + description: Returns the full record for a single team. + operationId: getTeam + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TeamResponse" + type: object + description: Successsfully retrieved the record for a single team. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a team + tags: + - Teams + parameters: + - $ref: "#/components/parameters/team_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/teams/{team_gid}/addUser": + parameters: + - $ref: "#/components/parameters/team_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: The user making this call must be a member of the team in order to add others. The user being added must exist in the same organization as the team. + operationId: addUserForTeam + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TeamAddUserRequest" + type: object + description: The user to add to the team. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/UserResponse" + type: object + description: Returns the full user record for the added user. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a user to a team + tags: + - Teams + "/teams/{team_gid}/projects": + get: + description: Returns the compact project records for all projects in the team. + operationId: getProjectsForTeam + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - $ref: "#/components/parameters/archived_query_param" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectCompact" + type: array + type: object + description: Successfully retrieved the requested team's projects. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a team's projects + tags: + - Projects + parameters: + - $ref: "#/components/parameters/team_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creates a project shared with the given team. + + Returns the full record of the newly created project. + operationId: createProjectForTeam + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectRequest" + type: object + description: The new project to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectResponse" + type: object + description: Successfully created the specified project. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a project in a team + tags: + - Projects + "/teams/{team_gid}/removeUser": + parameters: + - $ref: "#/components/parameters/team_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: The user making this call must be a member of the team in order to remove themselves or others. + operationId: removeUserForTeam + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TeamRemoveUserRequest" + type: object + description: The user to remove from the team. + required: true + responses: + "204": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Returns an empty data record + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a user from a team + tags: + - Teams + "/teams/{team_gid}/team_memberships": + get: + description: Returns the compact team memberships for the team. + operationId: getTeamMembershipsForTeam + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TeamMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested team's memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get memberships from a team + tags: + - Team Memberships + parameters: + - $ref: "#/components/parameters/team_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/teams/{team_gid}/users": + get: + description: |- + Returns the compact records for all users that are members of the team. + Results are sorted alphabetically and limited to 2000. For more results use the `/users` endpoint. + operationId: getUsersForTeam + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/UserCompact" + type: array + type: object + description: Returns the user records for all the members of the team, including guests and limited access users + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get users in a team + tags: + - Users + parameters: + - $ref: "#/components/parameters/team_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/offset" + /time_periods: + get: + description: Returns compact time period records. + operationId: getTimePeriods + parameters: + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: start_on + schema: + format: date + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: end_on + schema: + format: date + type: string + - description: Globally unique identifier for the workspace. + example: "31326" + in: query + name: workspace + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TimePeriodCompact" + type: array + type: object + description: Successfully retrieved the requested time periods. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get time periods + tags: + - Time Periods + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/time_periods/{time_period_gid}": + get: + description: Returns the full record for a single time period. + operationId: getTimePeriod + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TimePeriodResponse" + type: object + description: Successfully retrieved the record for a single time period. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a time period + tags: + - Time Periods + parameters: + - $ref: "#/components/parameters/time_period_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/user_task_lists/{user_task_list_gid}": + get: + description: Returns the full record for a user task list. + operationId: getUserTaskList + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/UserTaskListResponse" + type: object + description: Successfully retrieved the user task list. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a user task list + tags: + - User Task Lists + parameters: + - $ref: "#/components/parameters/user_task_list_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/user_task_lists/{user_task_list_gid}/tasks": + get: + description: |- + Returns the compact list of tasks in a user’s My Tasks list. + *Note: Access control is enforced for this endpoint as with all Asana API endpoints, meaning a user’s private tasks will be filtered out if the API-authenticated user does not have access to them.* + *Note: Both complete and incomplete tasks are returned by default unless they are filtered out (for example, setting `completed_since=now` will return only incomplete tasks, which is the default view for “My Tasks” in Asana.)* + operationId: getTasksForUserTaskList + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the user task list's tasks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get tasks from a user task list + tags: + - Tasks + parameters: + - description: | + Only return tasks that are either incomplete or that have been completed since this time. Accepts a date-time string or the keyword *now*. + example: 2012-02-22T02:06:58.158Z + in: query + name: completed_since + required: false + schema: + type: string + - $ref: "#/components/parameters/user_task_list_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + /users: + get: + description: |- + Returns the user records for all users in all workspaces and organizations accessible to the authenticated user. Accepts an optional workspace ID parameter. + Results are sorted by user ID. + operationId: getUsers + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/UserCompact" + type: array + type: object + description: Successfully retrieved the requested user records. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple users + tags: + - Users + parameters: + - description: The workspace or organization ID to filter users on. + example: "1331" + in: query + name: workspace + schema: + type: string + - description: The team ID to filter users on. + example: "15627" + in: query + name: team + schema: + type: string + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/users/{user_gid}": + get: + description: Returns the full user record for the single user with the provided ID. + operationId: getUser + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/UserResponse" + type: object + description: Returns the user specified. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a user + tags: + - Users + parameters: + - $ref: "#/components/parameters/user_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/users/{user_gid}/favorites": + get: + description: |- + Returns all of a user's favorites in the given workspace, of the given type. + Results are given in order (The same order as Asana's sidebar). + operationId: getFavoritesForUser + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/AsanaNamedResource" + type: array + type: object + description: Returns the specified user's favorites. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a user's favorites + tags: + - Users + parameters: + - $ref: "#/components/parameters/user_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - description: The resource type of favorites to be returned. + in: query + name: resource_type + required: true + schema: + default: project + enum: + - portfolio + - project + - tag + - task + - user + type: string + - description: The workspace in which to get favorites. + example: "1234" + in: query + name: workspace + required: true + schema: + type: string + "/users/{user_gid}/team_memberships": + get: + description: Returns the compact team membership records for the user. + operationId: getTeamMembershipsForUser + parameters: + - description: Globally unique identifier for the workspace. + example: "31326" + in: query + name: workspace + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TeamMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested users's memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get memberships from a user + tags: + - Team Memberships + parameters: + - $ref: "#/components/parameters/user_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/users/{user_gid}/teams": + get: + description: Returns the compact records for all teams to which the given user is assigned. + operationId: getTeamsForUser + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TeamCompact" + type: array + type: object + description: Returns the team records for all teams in the organization or workspace to which the given user is assigned. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get teams for a user + tags: + - Teams + parameters: + - $ref: "#/components/parameters/user_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - description: The workspace or organization to filter teams on. + example: "1331" + in: query + name: organization + required: true + schema: + type: string + "/users/{user_gid}/user_task_list": + get: + description: Returns the full record for a user's task list. + operationId: getUserTaskListForUser + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/UserTaskListResponse" + type: object + description: Successfully retrieved the user's task list. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a user's task list + tags: + - User Task Lists + parameters: + - $ref: "#/components/parameters/user_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - description: The workspace in which to get the user task list. + example: "1234" + in: query + name: workspace + required: true + schema: + type: string + "/users/{user_gid}/workspace_memberships": + get: + description: Returns the compact workspace membership records for the user. + operationId: getWorkspaceMembershipsForUser + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/WorkspaceMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested user's workspace memberships. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get workspace memberships for a user + tags: + - Workspace Memberships + parameters: + - $ref: "#/components/parameters/user_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + /webhooks: + get: + description: Get the compact representation of all webhooks your app has registered for the authenticated user in the given workspace. + operationId: getWebhooks + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - description: The workspace to query for webhooks in. + example: "1331" + in: query + name: workspace + required: true + schema: + type: string + - description: Only return webhooks for the given resource. + example: "51648" + in: query + name: resource + schema: + type: string + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/WebhookResponse" + type: array + type: object + description: Successfully retrieved the requested webhooks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple webhooks + tags: + - Webhooks + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Establishing a webhook is a two-part process. First, a simple HTTP POST + request initiates the creation similar to creating any other resource. + + Next, in the middle of this request comes the confirmation handshake. + When a webhook is created, we will send a test POST to the target with an + `X-Hook-Secret` header. The target must respond with a `200 OK` or `204 + No Content` and a matching `X-Hook-Secret` header to confirm that this + webhook subscription is indeed expected. We strongly recommend storing + this secret to be used to verify future webhook event signatures. + + The POST request to create the webhook will then return with the status + of the request. If you do not acknowledge the webhook’s confirmation + handshake it will fail to setup, and you will receive an error in + response to your attempt to create it. This means you need to be able to + receive and complete the webhook *while* the POST request is in-flight + (in other words, have a server that can handle requests asynchronously). + + Invalid hostnames like localhost will recieve a 403 Forbidden status code. + + ``` + # Request + curl -H "Authorization: Bearer " \ + -X POST https://app.asana.com/api/1.0/webhooks \ + -d "resource=8675309" \ + -d "target=https://example.com/receive-webhook/7654" + ``` + + ``` + # Handshake sent to https://example.com/ + POST /receive-webhook/7654 + X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 + ``` + + ``` + # Handshake response sent by example.com + HTTP/1.1 200 + X-Hook-Secret: b537207f20cbfa02357cf448134da559e8bd39d61597dcd5631b8012eae53e81 + ``` + + ``` + # Response + HTTP/1.1 201 + { + "data": { + "gid": "43214", + "resource": { + "gid": "8675309", + "name": "Bugs" + }, + "target": "https://example.com/receive-webhook/7654", + "active": false, + "last_success_at": null, + "last_failure_at": null, + "last_failure_content": null + } + } + ``` + operationId: createWebhook + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WebhookRequest" + type: object + description: The webhook workspace and target. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WebhookResponse" + type: object + description: Successfully created the requested webhook. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Establish a webhook + tags: + - Webhooks + "/webhooks/{webhook_gid}": + delete: + description: This method *permanently* removes a webhook. Note that it may be possible to receive a request that was already in flight after deleting the webhook, but no further requests will be issued. + operationId: deleteWebhook + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: Successfully retrieved the requested webhook. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Delete a webhook + tags: + - Webhooks + get: + description: Returns the full record for the given webhook. + operationId: getWebhook + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WebhookResponse" + type: object + description: Successfully retrieved the requested webhook. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a webhook + tags: + - Webhooks + parameters: + - $ref: "#/components/parameters/webhook_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/workspace_memberships/{workspace_membership_gid}": + get: + description: Returns the complete workspace record for a single workspace membership. + operationId: getWorkspaceMembership + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WorkspaceMembershipResponse" + type: object + description: Successfully retrieved the requested workspace membership. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a workspace membership + tags: + - Workspace Memberships + parameters: + - $ref: "#/components/parameters/workspace_membership_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + /workspaces: + get: + description: Returns the compact records for all workspaces visible to the authorized user. + operationId: getWorkspaces + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/WorkspaceCompact" + type: array + type: object + description: Return all workspaces visible to the authorized user. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get multiple workspaces + tags: + - Workspaces + parameters: + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/workspaces/{workspace_gid}": + get: + description: Returns the full workspace record for a single workspace. + operationId: getWorkspace + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WorkspaceResponse" + type: object + description: Return the full workspace record. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a workspace + tags: + - Workspaces + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + put: + description: |- + A specific, existing workspace can be updated by making a PUT request on the URL for that workspace. Only the fields provided in the data block will be updated; any unspecified fields will remain unchanged. + Currently the only field that can be modified for a workspace is its name. + Returns the complete, updated workspace record. + operationId: updateWorkspace + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WorkspaceRequest" + type: object + description: The workspace object with all updated properties. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WorkspaceResponse" + type: object + description: Update for the workspace was successful. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Update a workspace + tags: + - Workspaces + "/workspaces/{workspace_gid}/addUser": + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Add a user to a workspace or organization. + The user can be referenced by their globally unique user ID or their email address. Returns the full user record for the invited user. + operationId: addUserForWorkspace + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WorkspaceAddUserRequest" + type: object + description: The user to add to the workspace. + required: true + responses: + "200": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/UserResponse" + type: object + description: The user was added successfully to the workspace or organization. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Add a user to a workspace or organization + tags: + - Workspaces + "/workspaces/{workspace_gid}/custom_fields": + get: + description: Returns a list of the compact representation of all of the custom fields in a workspace. + operationId: getCustomFieldsForWorkspace + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/CustomFieldResponse" + type: array + type: object + description: Successfully retrieved all custom fields for the given workspace. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get a workspace's custom fields + tags: + - Custom Fields + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + "/workspaces/{workspace_gid}/projects": + get: + description: |- + Returns the compact project records for all projects in the workspace. + *Note: This endpoint may timeout for large domains. Prefer the `/teams/{team_gid}/projects` endpoint.* + operationId: getProjectsForWorkspace + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + - $ref: "#/components/parameters/archived_query_param" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/ProjectCompact" + type: array + type: object + description: Successfully retrieved the requested workspace's projects. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get all projects in a workspace + tags: + - Projects + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Returns the compact project records for all projects in the workspace. + + If the workspace for your project is an organization, you must also + supply a team to share the project with. + + Returns the full record of the newly created project. + operationId: createProjectForWorkspace + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectRequest" + type: object + description: The new project to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/ProjectResponse" + type: object + description: Successfully created a new project in the specified workspace. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a project in a workspace + tags: + - Projects + "/workspaces/{workspace_gid}/removeUser": + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Remove a user from a workspace or organization. + The user making this call must be an admin in the workspace. The user can be referenced by their globally unique user ID or their email address. + Returns an empty data record. + operationId: removeUserForWorkspace + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/WorkspaceRemoveUserRequest" + type: object + description: The user to remove from the workspace. + required: true + responses: + "204": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/EmptyResponse" + type: object + description: The user was removed successfully to the workspace or organization. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Remove a user from a workspace or organization + tags: + - Workspaces + "/workspaces/{workspace_gid}/tags": + get: + description: Returns the compact tag records for some filtered set of tags. Use one or more of the parameters provided to filter the tags returned. + operationId: getTagsForWorkspace + parameters: + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TagCompact" + type: array + type: object + description: Successfully retrieved the specified set of tags. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get tags in a workspace + tags: + - Tags + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + post: + description: |- + Creates a new tag in a workspace or organization. + + Every tag is required to be created in a specific workspace or + organization, and this cannot be changed once set. Note that you can use + the workspace parameter regardless of whether or not it is an + organization. + + Returns the full record of the newly created tag. + operationId: createTagForWorkspace + requestBody: + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TagResponse" + type: object + description: The tag to create. + required: true + responses: + "201": + content: + application/json: + schema: + properties: + data: + $ref: "#/components/schemas/TagResponse" + type: object + description: Successfully created the newly specified tag. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Create a tag in a workspace + tags: + - Tags + "/workspaces/{workspace_gid}/tasks/search": + get: + description: |- + To mirror the functionality of the Asana web app's advanced search feature, the Asana API has a task search endpoint that allows you to build complex filters to find and retrieve the exact data you need. + #### Premium access + Like the Asana web product's advance search feature, this search endpoint will only be available to premium Asana users. A user is premium if any of the following is true: + + - The workspace in which the search is being performed is a premium workspace - The user is a member of a premium team inside the workspace + + Even if a user is only a member of a premium team inside a non-premium workspace, search will allow them to find data anywhere in the workspace, not just inside the premium team. Making a search request using credentials of a non-premium user will result in a `402 Payment Required` error. + #### Pagination + Search results are not stable; repeating the same query multiple times may return the data in a different order, even if the data do not change. Because of this, the traditional [pagination](https://developers.asana.com/docs/#pagination) available elsewhere in the Asana API is not available here. However, you can paginate manually by sorting the search results by their creation time and then modifying each subsequent query to exclude data you have already seen. Page sizes are limited to a maximum of 100 items, and can be specified by the `limit` query parameter. + #### Eventual consistency + Changes in Asana (regardless of whether they’re made though the web product or the API) are forwarded to our search infrastructure to be indexed. This process can take between 10 and 60 seconds to complete under normal operation, and longer during some production incidents. Making a change to a task that would alter its presence in a particular search query will not be reflected immediately. This is also true of the advanced search feature in the web product. + #### Rate limits + You may receive a `429 Too Many Requests` response if you hit any of our [rate limits](https://developers.asana.com/docs/#rate-limits). + #### Custom field parameters + | Parameter name | Custom field type | Accepted type | + |---|---|---| + | custom_fields.{gid}.is_set | All | Boolean | + | custom_fields.{gid}.value | Text | String | + | custom_fields.{gid}.value | Number | Number | + | custom_fields.{gid}.value | Enum | Enum option ID | + | custom_fields.{gid}.starts_with | Text only | String | + | custom_fields.{gid}.ends_with | Text only | String | + | custom_fields.{gid}.contains | Text only | String | + | custom_fields.{gid}.less_than | Number only | Number | + | custom_fields.{gid}.greater_than | Number only | Number | + + + For example, if the gid of the custom field is 12345, these query parameter to find tasks where it is set would be `custom_fields.12345.is_set=true`. To match an exact value for an enum custom field, use the gid of the desired enum option and not the name of the enum option: `custom_fields.12345.value=67890`. + + Searching for multiple exact matches of a custom field is not supported. + + *Note: If you specify `projects.any` and `sections.any`, you will receive tasks for the project **and** tasks for the section. If you're looking for only tasks in a section, omit the `projects.any` from the request.* + operationId: searchTasksForWorkspace + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/TaskCompact" + type: array + type: object + description: Successfully retrieved the section's tasks. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Search tasks in a workspace + tags: + - Tasks + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - description: Performs full-text search on both task name and description + example: Bug + in: query + name: text + schema: + type: string + - description: Filters results by the task's resource_subtype + in: query + name: resource_subtype + schema: + default: milestone + enum: + - default_task + - milestone + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: assignee.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: assignee.not + schema: + type: string + - description: Comma-separated list of portfolio IDs + example: 12345,23456,34567 + in: query + name: portfolios.any + schema: + type: string + - description: Comma-separated list of project IDs + example: 12345,23456,34567 + in: query + name: projects.any + schema: + type: string + - description: Comma-separated list of project IDs + example: 12345,23456,34567 + in: query + name: projects.not + schema: + type: string + - description: Comma-separated list of project IDs + example: 12345,23456,34567 + in: query + name: projects.all + schema: + type: string + - description: Comma-separated list of section or column IDs + example: 12345,23456,34567 + in: query + name: sections.any + schema: + type: string + - description: Comma-separated list of section or column IDs + example: 12345,23456,34567 + in: query + name: sections.not + schema: + type: string + - description: Comma-separated list of section or column IDs + example: 12345,23456,34567 + in: query + name: sections.all + schema: + type: string + - description: Comma-separated list of tag IDs + example: 12345,23456,34567 + in: query + name: tags.any + schema: + type: string + - description: Comma-separated list of tag IDs + example: 12345,23456,34567 + in: query + name: tags.not + schema: + type: string + - description: Comma-separated list of tag IDs + example: 12345,23456,34567 + in: query + name: tags.all + schema: + type: string + - description: Comma-separated list of team IDs + example: 12345,23456,34567 + in: query + name: teams.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: followers.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: followers.not + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: created_by.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: created_by.not + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: assigned_by.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: assigned_by.not + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: liked_by.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: liked_by.not + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: commented_on_by.any + schema: + type: string + - description: Comma-separated list of user identifiers + example: 12345,23456,34567 + in: query + name: commented_on_by.not + schema: + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: due_on.before + schema: + format: date + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: due_on.after + schema: + format: date + type: string + - description: ISO 8601 date string or `null` + example: 2019-09-15 + in: query + name: due_on + schema: + format: date + nullable: true + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: due_at.before + schema: + format: date-time + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: due_at.after + schema: + format: date-time + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: start_on.before + schema: + format: date + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: start_on.after + schema: + format: date + type: string + - description: ISO 8601 date string or `null` + example: 2019-09-15 + in: query + name: start_on + schema: + format: date + nullable: true + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: created_on.before + schema: + format: date + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: created_on.after + schema: + format: date + type: string + - description: ISO 8601 date string or `null` + example: 2019-09-15 + in: query + name: created_on + schema: + format: date + nullable: true + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: created_at.before + schema: + format: date-time + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: created_at.after + schema: + format: date-time + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: completed_on.before + schema: + format: date + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: completed_on.after + schema: + format: date + type: string + - description: ISO 8601 date string or `null` + example: 2019-09-15 + in: query + name: completed_on + schema: + format: date + nullable: true + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: completed_at.before + schema: + format: date-time + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: completed_at.after + schema: + format: date-time + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: modified_on.before + schema: + format: date + type: string + - description: ISO 8601 date string + example: 2019-09-15 + in: query + name: modified_on.after + schema: + format: date + type: string + - description: ISO 8601 date string or `null` + example: 2019-09-15 + in: query + name: modified_on + schema: + format: date + nullable: true + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: modified_at.before + schema: + format: date-time + type: string + - description: ISO 8601 datetime string + example: 2019-04-15T01:01:46.055Z + in: query + name: modified_at.after + schema: + format: date-time + type: string + - description: Filter to incomplete tasks with dependents + example: false + in: query + name: is_blocking + schema: + type: boolean + - description: Filter to tasks with incomplete dependencies + example: false + in: query + name: is_blocked + schema: + type: boolean + - description: Filter to tasks with attachments + example: false + in: query + name: has_attachment + schema: + type: boolean + - description: Filter to completed tasks + example: false + in: query + name: completed + schema: + type: boolean + - description: Filter to subtasks + example: false + in: query + name: is_subtask + schema: + type: boolean + - description: One of `due_date`, `created_at`, `completed_at`, `likes`, or `modified_at`, defaults to `modified_at` + example: likes + in: query + name: sort_by + schema: + default: modified_at + enum: + - due_date + - created_at + - completed_at + - likes + - modified_at + type: string + - description: Default `false` + example: true + in: query + name: sort_ascending + schema: + default: false + type: boolean + "/workspaces/{workspace_gid}/typeahead": + get: + description: |- + Retrieves objects in the workspace based via an auto-completion/typeahead + search algorithm. This feature is meant to provide results quickly, so do + not rely on this API to provide extremely accurate search results. The + result set is limited to a single page of results with a maximum size, so + you won’t be able to fetch large numbers of results. + + The typeahead search API provides search for objects from a single + workspace. This endpoint should be used to query for objects when + creating an auto-completion/typeahead search feature. This API is meant + to provide results quickly and should not be relied upon for accurate or + exhaustive search results. The results sets are limited in size and + cannot be paginated. + + Queries return a compact representation of each object which is typically + the gid and name fields. Interested in a specific set of fields or all of + the fields?! Of course you are. Use field selectors to manipulate what + data is included in a response. + + Resources with type `user` are returned in order of most contacted to + least contacted. This is determined by task assignments, adding the user + to projects, and adding the user as a follower to tasks, messages, + etc. + + Resources with type `project` are returned in order of recency. This is + determined when the user visits the project, is added to the project, and + completes tasks in the project. + + Resources with type `task` are returned with priority placed on tasks + the user is following, but no guarantee on the order of those tasks. + + Leaving the `query` string empty or omitted will give you results, still + following the resource ordering above. This could be used to list users or + projects that are relevant for the requesting user's api token. + operationId: typeaheadForWorkspace + responses: + "200": + content: + application/json: + schema: + description: A generic list of objects, such as those returned by the typeahead search endpoint. + properties: + data: + items: + $ref: "#/components/schemas/AsanaNamedResource" + type: array + type: object + description: Successfully retrieved objects via a typeahead search algorithm. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get objects via typeahead + tags: + - Typeahead + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - description: "The type of values the typeahead should return. You can choose from one of the following: `custom_field`, `project`, `portfolio`, `tag`, `task`, and `user`. Note that unlike in the names of endpoints, the types listed here are in singular form (e.g. `task`). Using multiple types is not yet supported." + in: query + name: resource_type + required: true + schema: + default: user + enum: + - custom_field + - portfolio + - project + - tag + - task + - user + type: string + - description: "*Deprecated: new integrations should prefer the resource_type field.*" + in: query + name: type + required: false + schema: + default: user + enum: + - custom_field + - portfolio + - project + - tag + - task + - user + type: string + - description: The string that will be used to search for relevant objects. If an empty string is passed in, the API will currently return an empty result set. + example: Greg + in: query + name: query + schema: + type: string + - description: The number of results to return. The default is 20 if this parameter is omitted, with a minimum of 1 and a maximum of 100. If there are fewer results found than requested, all will be returned. + example: 20 + in: query + name: count + schema: + type: integer + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + "/workspaces/{workspace_gid}/users": + get: + description: |- + Returns the compact records for all users in the specified workspace or organization. + Results are sorted alphabetically and limited to 2000. For more results use the `/users` endpoint. + operationId: getUsersForWorkspace + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/UserCompact" + type: array + type: object + description: Return the users in the specified workspace or org. + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "500": + $ref: "#/components/responses/InternalServerError" + summary: Get users in a workspace or organization + tags: + - Users + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/offset" + "/workspaces/{workspace_gid}/workspace_memberships": + get: + description: Returns the compact workspace membership records for the workspace. + operationId: getWorkspaceMembershipsForWorkspace + responses: + "200": + content: + application/json: + schema: + properties: + data: + items: + $ref: "#/components/schemas/WorkspaceMembershipCompact" + type: array + type: object + description: Successfully retrieved the requested workspace's memberships. + summary: Get the workspace memberships for a workspace + tags: + - Workspace Memberships + parameters: + - $ref: "#/components/parameters/workspace_path_gid" + - $ref: "#/components/parameters/user_query_param" + - $ref: "#/components/parameters/pretty" + - $ref: "#/components/parameters/fields" + - $ref: "#/components/parameters/limit" + - $ref: "#/components/parameters/offset" +components: + parameters: + archived_query_param: + description: Only return projects whose `archived` field takes on the value of this parameter. + example: false + in: query + name: archived + schema: + type: boolean + attachment_path_gid: + description: Globally unique identifier for the attachment. + example: "12345" + in: path + name: attachment_gid + required: true + schema: + type: string + x-env-variable: attachment + custom_field_path_gid: + description: Globally unique identifier for the custom field. + example: "12345" + in: path + name: custom_field_gid + required: true + schema: + type: string + x-env-variable: custom_field + fields: + description: |- + Defines fields to return. + Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. + The id of included objects will always be returned, regardless of the field options. + example: + - followers + - assignee + explode: false + in: query + name: opt_fields + required: false + schema: + items: + type: string + type: array + style: form + goal_path_gid: + description: Globally unique identifier for the goal. + example: "12345" + in: path + name: goal_gid + required: true + schema: + type: string + x-env-variable: goal + job_path_gid: + description: Globally unique identifier for the job. + example: "12345" + in: path + name: job_gid + required: true + schema: + type: string + x-env-variable: job + limit: + description: |- + Results per page. + The number of objects to return per page. The value must be between 1 and 100. + example: 50 + in: query + name: limit + schema: + type: integer + offset: + description: |- + Offset token. + An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. + 'Note: You can only pass in an offset that was returned to you via a previously paginated request.' + example: eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 + in: query + name: offset + schema: + type: string + organization_export_path_gid: + description: Globally unique identifier for the organization export. + example: "12345" + in: path + name: organization_export_gid + required: true + schema: + type: string + x-env-variable: organization_export + portfolio_membership_path_gid: + example: "1331" + in: path + name: portfolio_membership_gid + required: true + schema: + type: string + x-env-variable: portfolio_membership + portfolio_path_gid: + description: Globally unique identifier for the portfolio. + example: "12345" + in: path + name: portfolio_gid + required: true + schema: + type: string + x-env-variable: portfolio + portfolio_query_param: + description: The portfolio to filter results on. + example: "12345" + in: query + name: portfolio + schema: + type: string + x-env-variable: portfolio + pretty: + allowEmptyValue: true + description: |- + Provides “pretty” output. + Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging. + example: true + in: query + name: opt_pretty + required: false + schema: + type: boolean + style: form + project_membership_path_gid: + example: "1331" + in: path + name: project_membership_gid + required: true + schema: + type: string + x-env-variable: project_membership + project_path_gid: + description: Globally unique identifier for the project. + example: "1331" + in: path + name: project_gid + required: true + schema: + type: string + x-env-variable: project + project_status_path_gid: + description: The project status update to get. + example: "321654" + in: path + name: project_status_gid + required: true + schema: + type: string + x-env-variable: project_status + section_path_gid: + description: The globally unique identifier for the section. + example: "321654" + in: path + name: section_gid + required: true + schema: + type: string + x-env-variable: section + story_path_gid: + description: Globally unique identifier for the story. + example: "35678" + in: path + name: story_gid + required: true + schema: + type: string + x-env-variable: story + tag_path_gid: + description: Globally unique identifier for the tag. + example: "11235" + in: path + name: tag_gid + required: true + schema: + type: string + x-env-variable: tag + task_path_gid: + description: The task to operate on. + example: "321654" + in: path + name: task_gid + required: true + schema: + type: string + x-env-variable: task + team_membership_path_gid: + example: "724362" + in: path + name: team_membership_gid + required: true + schema: + type: string + x-env-variable: team_membership + team_path_gid: + description: Globally unique identifier for the team. + example: "159874" + in: path + name: team_gid + required: true + schema: + type: string + x-env-variable: team + time_period_path_gid: + description: Globally unique identifier for the time period. + example: "917392" + in: path + name: time_period_gid + required: true + schema: + type: string + x-env-variable: time_period + user_path_gid: + description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. + example: me + in: path + name: user_gid + required: true + schema: + type: string + x-env-variable: user + user_query_param: + description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. + example: me + in: query + name: user + schema: + type: string + x-env-variable: user + user_task_list_path_gid: + description: Globally unique identifier for the user task list. + example: "12345" + in: path + name: user_task_list_gid + required: true + schema: + type: string + x-env-variable: user_task_list + webhook_path_gid: + description: Globally unique identifier for the webhook. + example: "12345" + in: path + name: webhook_gid + required: true + schema: + type: string + x-env-variable: webhook + workspace_membership_path_gid: + example: "12345" + in: path + name: workspace_membership_gid + required: true + schema: + type: string + x-env-variable: workspace_membership + workspace_path_gid: + description: Globally unique identifier for the workspace or organization. + example: "12345" + in: path + name: workspace_gid + required: true + schema: + type: string + x-env-variable: workspace + workspace_query_param: + description: The workspace to filter results on. + example: "12345" + in: query + name: workspace + schema: + type: string + x-env-variable: workspace + responses: + BadGateway: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: There is an issue between the load balancers and Asana's API. + BadRequest: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: This usually occurs because of a missing or malformed parameter. Check the documentation and the syntax of your request and try again. + Forbidden: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: The authentication and request syntax was valid but the server is refusing to complete the request. This can happen if you try to read or write to objects or properties that the user does not have access to. + GatewayTimeout: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: This request took too long to complete. + GenericErrorResponse: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Sadly, sometimes requests to the API are not successful. Failures can occur for a wide range of reasons. In all cases, the API should return an HTTP Status Code that indicates the nature of the failure, with a response body in JSON format containing additional information. In the event of a server error the response body will contain an error phrase. These phrases are automatically generated using the [node-asana-phrase library](https://github.com/Asana/node-asana-phrase) and can be used by Asana support to quickly look up the incident that caused the server error. + InternalServerError: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: There was a problem on Asana’s end. In the event of a server error the response body should contain an error phrase. These phrases can be used by Asana support to quickly look up the incident that caused the server error. Some errors are due to server load, and will not supply an error phrase. + NotFound: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Either the request method and path supplied do not specify a known action in the API, or the object specified by the request does not exist. + PaymentRequired: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: The request was valid, but the queried object or object mutation specified in the request is above your current premium level. + ServiceUnavailable: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: Either the upstream service is unavailable to the API, or he API has been intentionally shut off. + TooManyRequests: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: You have exceeded one of the enforced rate limits in the API. See the [documentation on rate limiting](https://developers.asana.com/docs/#rate-limits) for more information. + Unauthorized: + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + description: A valid authentication token was not provided with the request, so the API could not associate a user with the request. + schemas: + AddCustomFieldSettingRequest: + properties: + custom_field: + description: The custom field to associate with this container. + example: "14916" + type: string + insert_after: + description: A gid of a Custom Field Setting on this container, after which the new Custom Field Setting will be added. `insert_before` and `insert_after` parameters cannot both be specified. + example: "1331" + type: string + insert_before: + description: A gid of a Custom Field Setting on this container, before which the new Custom Field Setting will be added. `insert_before` and `insert_after` parameters cannot both be specified. + example: "1331" + type: string + is_important: + description: Whether this field should be considered important to this container (for instance, to display in the list view of items in the container). + example: true + type: boolean + required: + - custom_field + type: object + AddFollowersRequest: + properties: + followers: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: 521621,621373 + type: string + required: + - followers + type: object + AddMembersRequest: + properties: + members: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: 521621,621373 + type: string + required: + - members + type: object + AsanaNamedResource: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - properties: + name: + description: The name of the object. + example: Bug Task + type: string + type: object + AsanaResource: + description: A generic Asana Resource, containing a globally unique identifier. + properties: + gid: + description: Globally unique identifier of the resource, as a string. + example: "12345" + readOnly: true + type: string + x-insert-after: false + resource_type: + description: The base type of this resource. + example: task + readOnly: true + type: string + x-insert-after: gid + type: object + AttachmentBase: + $ref: "#/components/schemas/AttachmentCompact" + AttachmentCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: An *attachment* object represents any file attached to a task in Asana, whether it’s an uploaded file or one associated via a third-party service such as Dropbox or Google Drive. + properties: + name: + description: The name of the file. + example: Screenshot.png + readOnly: true + type: string + resource_subtype: + description: |- + The service hosting the attachment. Valid values are `asana`, `dropbox`, `gdrive`, `onedrive`, `box`, and `external`. + `external` attachments are a beta feature currently limited to specific integrations. + type: object + x-docs-overrides: + properties.resource_type.example: attachment + AttachmentRequest: + properties: + file: + description: | + Required for file attachments. + format: binary + type: string + name: + description: | + The name of the external resource being attached. Required for attachments of type 'external'. + type: string + resource_subtype: + description: | + The type of the attachment. Must be one of the given values. If not specified, a file attachment of type `asana_file_attachments` will be assumed. + enum: + - asana_file_attachments + - external + example: text + type: string + url: + description: | + The URL of the external resource being attached. Required for attachments of type 'external'. + type: string + type: object + AttachmentResponse: + allOf: + - $ref: "#/components/schemas/AttachmentBase" + - properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + download_url: + description: |- + The URL containing the content of the attachment. + *Note:* May be null if the attachment is hosted by [Box](https://www.box.com/). If present, this URL may only be valid for two minutes from the time of retrieval. You should avoid persisting this URL somewhere and just refresh it on demand to ensure you do not keep stale URLs. + example: https://s3.amazonaws.com/assets/123/Screenshot.png + format: uri + nullable: true + readOnly: true + type: string + host: + description: The service hosting the attachment. Valid values are `asana`, `dropbox`, `gdrive` and `box`. + example: dropbox + readOnly: true + type: string + parent: + allOf: + - $ref: "#/components/schemas/TaskCompact" + - description: The task this attachment is attached to. + readOnly: true + type: object + view_url: + description: The URL where the attachment can be viewed, which may be friendlier to users in a browser than just directing them to a raw file. May be null if no view URL exists for the service. + example: https://www.dropbox.com/s/123/Screenshot.png + format: uri + nullable: true + readOnly: true + type: string + type: object + BatchRequest: + description: A request object for use in a batch request. + properties: + actions: + items: + $ref: "#/components/schemas/BatchRequestAction" + type: array + type: object + BatchRequestAction: + description: An action object for use in a batch request. + properties: + data: + description: For `GET` requests, this should be a map of query parameters you would have normally passed in the URL. Options and pagination are not accepted here; put them in `options` instead. For `POST`, `PATCH`, and `PUT` methods, this should be the content you would have normally put in the data field of the body. + example: + assignee: me + workspace: "1337" + type: object + method: + description: The HTTP method you wish to emulate for the action. + enum: + - get + - post + - put + - delete + - patch + - head + example: get + type: string + options: + description: Pagination (`limit` and `offset`) and output options (`fields` or `expand`) for the action. “Pretty” JSON output is not an available option on individual actions; if you want pretty output, specify that option on the parent request. + example: + fields: + - name + - notes + - completed + limit: 3 + properties: + fields: + description: The fields to retrieve in the request. + example: + - name + - gid + - notes + - completed + items: + type: string + type: array + limit: + description: Pagination limit for the request. + example: 50 + type: integer + offset: + description: Pagination offset for the request. + example: eyJ0eXAiOJiKV1iQLCJhbGciOiJIUzI1NiJ9 + type: integer + type: object + relative_path: + description: The path of the desired endpoint relative to the API’s base URL. Query parameters are not accepted here; put them in `data` instead. + example: /tasks/123 + type: string + required: + - relative_path + - method + type: object + BatchResponse: + description: A response object returned from a batch request. + properties: + body: + description: The JSON body that the invoked endpoint returned. + example: + data: + completed: false + gid: "1967" + name: Hello, world! + notes: How are you today? + type: object + headers: + description: A map of HTTP headers specific to this result. This is primarily used for returning a `Location` header to accompany a `201 Created` result. The parent HTTP response will contain all common headers. + example: + location: /tasks/1234 + type: object + status_code: + description: The HTTP status code that the invoked endpoint returned. + example: 200 + type: integer + type: object + CustomFieldBase: + allOf: + - $ref: "#/components/schemas/CustomFieldCompact" + - properties: + currency_code: + description: ISO 4217 currency code to format this custom field. This will be null if the `format` is not `currency`. + example: EUR + nullable: true + type: string + custom_label: + description: This is the string that appears next to the custom field value. This will be null if the `format` is not `custom`. + example: gold pieces + nullable: true + type: string + custom_label_position: + description: Only relevant for custom fields with `custom` format. This depicts where to place the custom label. This will be null if the `format` is not `custom`. + enum: + - prefix + - suffix + example: suffix + type: string + description: + description: "[Opt In](/docs/input-output-options). The description of the custom field." + example: Development team priority + type: string + enum_options: + description: "*Conditional*. Only relevant for custom fields of type `enum`. This array specifies the possible values which an `enum` custom field can adopt. To modify the enum options, refer to [working with enum options](/docs/create-an-enum-option)." + items: + $ref: "#/components/schemas/EnumOption" + type: array + format: + description: The format of this custom field. + enum: + - currency + - identifier + - percentage + - custom + - none + example: custom + type: string + has_notifications_enabled: + description: "*Conditional*. This flag describes whether a follower of a task with this field should receive inbox notifications from changes to this field." + example: true + type: boolean + is_global_to_workspace: + description: This flag describes whether this custom field is available to every container in the workspace. Before project-specific custom fields, this field was always true. + example: true + readOnly: true + type: boolean + precision: + description: |- + Only relevant for custom fields of type ‘Number’. This field dictates the number of places after the decimal to round to, i.e. 0 is integer values, 1 rounds to the nearest tenth, and so on. Must be between 0 and 6, inclusive. + For percentage format, this may be unintuitive, as a value of 0.25 has a precision of 0, while a value of 0.251 has a precision of 1. This is due to 0.25 being displayed as 25%. + The identifier format will always have a precision of 0. + example: 2 + type: integer + type: object + CustomFieldCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: |- + Custom Fields store the metadata that is used in order to add user-specified information to tasks in Asana. Be sure to reference the [Custom Fields](/docs/asana-custom-fields) developer documentation for more information about how custom fields relate to various resources in Asana. + + Users in Asana can [lock custom fields](https://asana.com/guide/help/premium/custom-fields#gl-lock-fields), which will make them read-only when accessed by other users. Attempting to edit a locked custom field will return HTTP error code `403 Forbidden`. + properties: + display_value: + description: A string representation for the value of the custom field. Integrations that don't require the underlying type should use this field to read values. Using this field will future-proof an app against new custom field types. + example: blue + readOnly: true + type: string + enabled: + description: "*Conditional*. Determines if the custom field is enabled or not." + example: true + type: boolean + enum_options: + description: "*Conditional*. Only relevant for custom fields of type `enum`. This array specifies the possible values which an `enum` custom field can adopt. To modify the enum options, refer to [working with enum options](/docs/create-an-enum-option)." + items: + $ref: "#/components/schemas/EnumOption" + type: array + name: + description: The name of the custom field. + example: Status + type: string + number_value: + description: "*Conditional*. This number is the value of a number custom field." + example: 5.2 + type: number + resource_subtype: + description: | + The type of the custom field. Must be one of the given values. + enum: + - text + - enum + - multi_enum + - number + example: text + type: string + text_value: + description: "*Conditional*. This string is the value of a text custom field." + example: Some Value + type: string + type: + description: | + *Deprecated: new integrations should prefer the resource_subtype field.* The type of the custom field. Must be one of the given values. + enum: + - text + - enum + - multi_enum + - number + readOnly: true + type: string + type: object + x-docs-overrides: + properties.resource_type.example: custom_field + CustomFieldRequest: + allOf: + - $ref: "#/components/schemas/CustomFieldBase" + - properties: + workspace: + description: "*Create-Only* The workspace to create a custom field in." + example: "1331" + type: string + required: + - workspace + type: object + CustomFieldResponse: + allOf: + - $ref: "#/components/schemas/CustomFieldBase" + - properties: + created_by: + $ref: "#/components/schemas/UserCompact" + enum_value: + allOf: + - $ref: "#/components/schemas/EnumOption" + - description: "*Conditional*. Only relevant for custom fields of type `enum`. This object is the chosen value of an enum custom field." + type: object + multi_enum_values: + description: "*Conditional*. Only relevant for custom fields of type `multi_enum`. This object is the chosen values of a multi_enum custom field." + items: + $ref: "#/components/schemas/EnumOption" + type: array + type: object + CustomFieldSettingBase: + $ref: "#/components/schemas/CustomFieldSettingCompact" + CustomFieldSettingCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: Custom Fields Settings objects represent the many-to-many join of the Custom Field and Project as well as stores information that is relevant to that particular pairing. + type: object + x-docs-overrides: + properties.resource_type.example: custom_field_setting + CustomFieldSettingResponse: + allOf: + - $ref: "#/components/schemas/CustomFieldSettingBase" + - properties: + custom_field: + allOf: + - $ref: "#/components/schemas/CustomFieldResponse" + - description: The custom field that is applied to the `parent`. + readOnly: true + type: object + is_important: + description: "`is_important` is used in the Asana web application to determine if this custom field is displayed in the list/grid view of a project or portfolio." + example: false + readOnly: true + type: boolean + parent: + allOf: + - $ref: "#/components/schemas/ProjectCompact" + - description: The parent to which the custom field is applied. This can be a project or portfolio and indicates that the tasks or projects that the parent contains may be given custom field values for this custom field. + readOnly: true + type: object + project: + allOf: + - $ref: "#/components/schemas/ProjectCompact" + - description: "*Deprecated: new integrations should prefer the `parent` field.* The id of the project that this custom field settings refers to." + readOnly: true + type: object + type: object + EmptyResponse: + description: An empty object. Some endpoints do not return an object on success. The success is conveyed through a 2-- status code and returning an empty object. + type: object + EnumOption: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: |- + Enum options are the possible values which an enum custom field can adopt. An enum custom field must contain at least 1 enum option but no more than 50. + + You can add enum options to a custom field by using the `POST /custom_fields/custom_field_gid/enum_options` endpoint. + + **It is not possible to remove or delete an enum option**. Instead, enum options can be disabled by updating the `enabled` field to false with the `PUT /enum_options/enum_option_gid` endpoint. Other attributes can be updated similarly. + + On creation of an enum option, `enabled` is always set to `true`, meaning the enum option is a selectable value for the custom field. Setting `enabled=false` is equivalent to “trashing” the enum option in the Asana web app within the “Edit Fields” dialog. The enum option will no longer be selectable but, if the enum option value was previously set within a task, the task will retain the value. + + Enum options are an ordered list and by default new enum options are inserted at the end. Ordering in relation to existing enum options can be specified on creation by using `insert_before` or `insert_after` to reference an existing enum option. Only one of `insert_before` and `insert_after` can be provided when creating a new enum option. + + An enum options list can be reordered with the `POST /custom_fields/custom_field_gid/enum_options/insert` endpoint. + properties: + color: + description: The color of the enum option. Defaults to ‘none’. + example: blue + type: string + enabled: + description: Whether or not the enum option is a selectable value for the custom field. + example: true + type: boolean + name: + description: The name of the enum option. + example: Low + type: string + type: object + x-docs-overrides: + properties.resource_type.example: enum_option + EnumOptionBase: + $ref: "#/components/schemas/EnumOption" + EnumOptionInsertRequest: + properties: + after_enum_option: + description: An existing enum option within this custom field after which the new enum option should be inserted. Cannot be provided together with before_enum_option. + example: "12345" + type: string + before_enum_option: + description: An existing enum option within this custom field before which the new enum option should be inserted. Cannot be provided together with after_enum_option. + example: "12345" + type: string + enum_option: + description: The gid of the enum option to relocate. + example: "97285" + type: string + required: + - enum_option + type: object + EnumOptionRequest: + allOf: + - $ref: "#/components/schemas/EnumOptionBase" + - properties: + insert_after: + description: An existing enum option within this custom field after which the new enum option should be inserted. Cannot be provided together with before_enum_option. + example: "12345" + type: string + insert_before: + description: An existing enum option within this custom field before which the new enum option should be inserted. Cannot be provided together with after_enum_option. + example: "12345" + type: string + type: object + Error: + properties: + help: + description: Additional information directing developers to resources on how to address and fix the problem, if available. + example: "For more information on API status codes and how to handle them, read the docs on errors: https://asana.github.io/developer-docs/#errors'" + readOnly: true + type: string + message: + description: Message providing more detail about the error that occurred, if available. + example: "project: Missing input" + readOnly: true + type: string + phrase: + description: "*500 errors only*. A unique error phrase which can be used when contacting developer support to help identify the exact occurrence of the problem in Asana’s logs." + example: 6 sad squid snuggle softly + readOnly: true + type: string + type: object + ErrorResponse: + description: |- + Sadly, sometimes requests to the API are not successful. Failures can + occur for a wide range of reasons. In all cases, the API should return + an HTTP Status Code that indicates the nature of the failure, + with a response body in JSON format containing additional information. + + + In the event of a server error the response body will contain an error + phrase. These phrases are automatically generated using the + [node-asana-phrase + library](https://github.com/Asana/node-asana-phrase) and can be used by + Asana support to quickly look up the incident that caused the server + error. + properties: + errors: + items: + $ref: "#/components/schemas/Error" + type: array + type: object + EventResponse: + description: |- + An *event* is an object representing a change to a resource that was + observed by an event subscription or delivered asynchronously to + the target location of an active webhook. + + The event may be triggered by a different `user` than the + subscriber. For example, if user A subscribes to a task and user B + modified it, the event’s user will be user B. Note: Some events + are generated by the system, and will have `null` as the user. API + consumers should make sure to handle this case. + + The `resource` that triggered the event may be different from the one + that the events were requested for or the webhook is subscribed to. For + example, a subscription to a project will contain events for tasks + contained within the project. + + **Note:** pay close attention to the relationship between the fields + `Event.action` and `Event.change.action`. + `Event.action` represents the action taken on the resource + itself, and `Event.change.action` represents how the information + within the resource's fields have been modified. + + For instance, consider these scenarios: + + + * When at task is added to a project, `Event.action` will be + `added`, `Event.parent` will be on object with the `id` and + `type` of the project, and there will be no `change` field. + + + * When an assignee is set on the task, `Event.parent` will be + `null`, `Event.action` will be `changed`, + `Event.change.action` will be `changed`, and `changed_value` will + be an object with the user's `id` and `type`. + + + * When a collaborator is added to the task, `Event.parent` will + be `null`, `Event.action` will be `changed`, + `Event.change.action` will be `added`, and `added_value` will be + an object with the user's `id` and `type`. + properties: + action: + description: The type of action taken on the **resource** that triggered the event. This can be one of `changed`, `added`, `removed`, `deleted`, or `undeleted` depending on the nature of the event. + example: changed + readOnly: true + type: string + change: + description: Information about the type of change that has occurred. This field is only present when the value of the property `action`, describing the action taken on the **resource**, is `changed`. + properties: + action: + description: The type of action taken on the **field** which has been changed. This can be one of `changed`, `added`, or `removed` depending on the nature of the change. + example: changed + readOnly: true + type: string + added_value: + description: "*Conditional.* This property is only present when the **field's** `action` is `added` and the `added_value` is an Asana resource. This will be only the `gid` and `resource_type` of the resource when the events come from webhooks; this will be the compact representation (and can have fields expanded with [opt_fields](/docs/input-output-options)) when using the [Events](/docs/asana-events) resource." + example: + gid: "12345" + resource_type: user + field: + description: The name of the field that has changed in the resource. + example: assignee + readOnly: true + type: string + new_value: + description: "*Conditional.* This property is only present when the **field's** `action` is `changed` and the `new_value` is an Asana resource. This will be only the `gid` and `resource_type` of the resource when the events come from webhooks; this will be the compact representation (and can have fields expanded with [opt_fields](/docs/input-output-options)) when using the [Events](/docs/asana-events) resource." + example: + gid: "12345" + resource_type: user + removed_value: + description: "*Conditional.* This property is only present when the **field's** `action` is `removed` and the `removed_value` is an Asana resource. This will be only the `gid` and `resource_type` of the resource when the events come from webhooks; this will be the compact representation (and can have fields expanded with [opt_fields](/docs/input-output-options)) when using the [Events](/docs/asana-events) resource." + example: + gid: "12345" + resource_type: user + readOnly: true + type: object + created_at: + description: The timestamp when the event occurred. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + parent: + allOf: + - $ref: "#/components/schemas/AsanaNamedResource" + - description: For added/removed events, the parent object that resource was added to or removed from. The parent will be `null` for other event types. + resource: + allOf: + - $ref: "#/components/schemas/AsanaNamedResource" + - description: The resource which has triggered the event by being modified in some way. + type: + description: "*Deprecated: Refer to the resource_type of the resource.* The type of the resource that generated the event." + example: task + readOnly: true + type: string + user: + allOf: + - $ref: "#/components/schemas/UserCompact" + - description: The user who triggered the event. + type: object + GoalAddSubgoalRequest: + properties: + insert_after: + description: An id of a subgoal of this parent goal. The new subgoal will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. + example: "1331" + type: string + insert_before: + description: An id of a subgoal of this parent goal. The new subgoal will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. + example: "1331" + type: string + subgoal: + description: The goal gid to add as subgoal to a parent goal + example: "1331" + type: string + required: + - subgoal + type: object + GoalAddSupportingWorkRequest: + properties: + supporting_work: + description: The project/portfolio gid to add as supporting work for a goal + example: "1331" + type: string + required: + - supporting_work + type: object + GoalBase: + allOf: + - $ref: "#/components/schemas/GoalCompact" + - properties: + due_on: + description: The localized day on which this goal is due. This takes a date with format `YYYY-MM-DD`. + example: 2019-09-15 + nullable: true + type: string + followers: + description: Array of users following this goal. + items: + $ref: "#/components/schemas/UserCompact" + type: array + html_notes: + description: The notes of the goal with formatting as HTML. + example: Start building brand awareness. + type: string + is_workspace_level: + description: "*Conditional*. This property is only present when the `workspace` provided is an organization. Whether the goal belongs to the `workspace` (and is listed as part of the workspace’s goals) or not. If it isn’t a workspace-level goal, it is a team-level goal, and is associated with the goal’s team." + example: true + type: boolean + liked: + description: True if the goal is liked by the authorized user, false if not. + example: false + type: boolean + metric: + allOf: + - $ref: "#/components/schemas/GoalMetricBase" + - nullable: true + type: object + notes: + description: Free-form textual information associated with the goal (i.e. its description). + example: Start building brand awareness. + type: string + start_on: + description: The day on which work for this goal begins, or null if the goal has no start date. This takes a date with `YYYY-MM-DD` format, and cannot be set unless there is an accompanying due date. + example: 2019-09-14 + nullable: true + type: string + status: + description: The current status of this goal. When the goal is open, its status can be `green`, `yellow`, and `red` to reflect "On Track", "At Risk", and "Off Track", respectively. When the goal is closed, the value can be `missed`, `achieved`, `partial`, or `dropped`. + nullable: true + type: string + team: + allOf: + - $ref: "#/components/schemas/TeamCompact" + - nullable: true + type: object + description: "*Conditional*. This property is only present when the `workspace` provided is an organization." + time_period: + allOf: + - $ref: "#/components/schemas/TimePeriodCompact" + - nullable: true + type: object + workspace: + allOf: + - $ref: "#/components/schemas/WorkspaceCompact" + - type: object + type: object + GoalCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - properties: + name: + description: The name of the goal. + example: Grow web traffic by 30% + type: string + owner: + allOf: + - $ref: "#/components/schemas/UserCompact" + - nullable: true + type: object + type: object + x-docs-overrides: + properties.resource_type.example: goal + GoalMetricBase: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - properties: + currency_code: + description: ISO 4217 currency code to format this custom field. This will be null if the `format` is not `currency`. + example: EUR + nullable: true + type: string + current_display_value: + description: "*Conditional*. This string is the current value of a goal metric of type string." + example: "8.12" + type: string + current_number_value: + description: "*Conditional*. This number is the current value of a goal metric of type number." + example: 8.12 + type: number + initial_number_value: + description: "*Conditional*. This number is the start value of a goal metric of type number." + example: 5.2 + type: number + precision: + description: |- + Only relevant for goal metrics of type ‘Number’. This field dictates the number of places after the decimal to round to, i.e. 0 is integer values, 1 rounds to the nearest tenth, and so on. Must be between 0 and 6, inclusive. + For percentage format, this may be unintuitive, as a value of 0.25 has a precision of 0, while a value of 0.251 has a precision of 1. This is due to 0.25 being displayed as 25%. + example: 2 + type: integer + resource_subtype: + description: The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. + enum: + - number + example: number + readOnly: true + type: string + target_number_value: + description: "*Conditional*. This number is the end value of a goal metric of type number." + example: 10.2 + type: number + unit: + description: A supported unit of measure for the goal metric, or none. + enum: + - none + - currency + - percentage + type: string + type: object + GoalMetricCurrentValueRequest: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - properties: + current_number_value: + description: "*Conditional*. This number is the current value of a goal metric of type number." + example: 8.12 + type: number + type: object + GoalMetricRequest: + $ref: "#/components/schemas/GoalMetricBase" + GoalMetricResponse: + $ref: "#/components/schemas/GoalMetricBase" + GoalRemoveSubgoalRequest: + properties: + subgoal: + description: The goal gid to remove as subgoal from the parent goal + example: "1331" + type: string + required: + - subgoal + type: object + GoalRequest: + $ref: "#/components/schemas/GoalBase" + GoalResponse: + allOf: + - $ref: "#/components/schemas/GoalBase" + - properties: + likes: + description: Array of likes for users who have liked this goal. + items: + $ref: "#/components/schemas/Like" + readOnly: true + type: array + num_likes: + description: The number of users who have liked this goal. + example: 5 + readOnly: true + type: integer + type: object + JobBase: + $ref: "#/components/schemas/JobCompact" + JobCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *job* is an object representing a process that handles asynchronous work. + properties: + new_project: + $ref: "#/components/schemas/ProjectCompact" + new_task: + $ref: "#/components/schemas/TaskCompact" + resource_subtype: + description: The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. + example: duplicate_task + readOnly: true + type: string + status: + enum: + - not_started + - in_progress + - completed + - failed + example: in_progress + readOnly: true + type: string + type: object + x-docs-overrides: + properties.resource_type.example: job + JobResponse: + $ref: "#/components/schemas/JobBase" + Like: + description: An object to represent a user's like. + properties: + gid: + description: Globally unique identifier of the object, as a string. + example: "12345" + readOnly: true + type: string + user: + $ref: "#/components/schemas/UserCompact" + type: object + ModifyDependenciesRequest: + example: + dependencies: + - "133713" + - "184253" + properties: + dependencies: + description: An array of task gids that a task depends on. + items: + type: string + type: array + type: object + ModifyDependentsRequest: + description: A set of dependent tasks. + example: + dependents: + - "133713" + - "184253" + properties: + dependents: + description: An array of task gids that are dependents of the given task. + items: + type: string + type: array + type: object + OrganizationExportBase: + $ref: "#/components/schemas/OrganizationExportCompact" + OrganizationExportCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: An *organization_export* object represents a request to export the complete data of an Organization in JSON format. + properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + download_url: + description: |- + Download this URL to retreive the full export of the organization + in JSON format. It will be compressed in a gzip (.gz) container. + + *Note: May be null if the export is still in progress or + failed. If present, this URL may only be valid for 1 hour from + the time of retrieval. You should avoid persisting this URL + somewhere and rather refresh on demand to ensure you do not keep + stale URLs.* + example: https://asana-export.s3.amazonaws.com/export-4632784536274-20170127-43246.json.gz?AWSAccessKeyId=xxxxxxxx + format: uri + nullable: true + readOnly: true + type: string + organization: + $ref: "#/components/schemas/WorkspaceCompact" + state: + description: The current state of the export. + enum: + - pending + - started + - finished + - error + example: started + readOnly: true + type: string + type: object + x-docs-overrides: + properties.resource_type.example: organization_export + OrganizationExportRequest: + description: An *organization_export* request starts a job to export the complete data of the given Organization. + properties: + organization: + description: Globally unique identifier for the workspace or organization. + example: "1331" + type: string + type: object + OrganizationExportResponse: + $ref: "#/components/schemas/OrganizationExportBase" + PortfolioAddItemRequest: + properties: + insert_after: + description: An id of an item in this portfolio. The new item will be added after the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. + example: "1331" + type: string + insert_before: + description: An id of an item in this portfolio. The new item will be added before the one specified here. `insert_before` and `insert_after` parameters cannot both be specified. + example: "1331" + type: string + item: + description: The item to add to the portfolio. + example: "1331" + type: string + required: + - item + type: object + PortfolioBase: + allOf: + - $ref: "#/components/schemas/PortfolioCompact" + - properties: + color: + description: Color of the portfolio. + enum: + - dark-pink + - dark-green + - dark-blue + - dark-red + - dark-teal + - dark-brown + - dark-orange + - dark-purple + - dark-warm-gray + - light-pink + - light-green + - light-blue + - light-red + - light-teal + - light-brown + - light-orange + - light-purple + - light-warm-gray + example: light-green + type: string + type: object + PortfolioCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: |- + A *portfolio* gives a high-level overview of the status of multiple initiatives in Asana. Portfolios provide a dashboard overview of the state of multiple projects, including a progress report and the most recent [project status](/docs/asana-project-statuses) update. + Portfolios have some restrictions on size. Each portfolio has a max of 250 items and, like projects, a max of 20 custom fields. + properties: + name: + description: The name of the portfolio. + example: Bug Portfolio + type: string + type: object + x-docs-overrides: + properties.resource_type.example: portfolio + PortfolioMembershipBase: + $ref: "#/components/schemas/PortfolioMembershipCompact" + PortfolioMembershipCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: This object determines if a user is a member of a portfolio. + properties: + portfolio: + $ref: "#/components/schemas/PortfolioCompact" + description: "[Opt In](/docs/input-output-options). The portfolio the user is a member of." + user: + $ref: "#/components/schemas/UserCompact" + type: object + x-docs-overrides: + properties.resource_type.example: portfolio_membership + PortfolioMembershipResponse: + $ref: "#/components/schemas/PortfolioMembershipBase" + PortfolioRemoveItemRequest: + properties: + item: + description: The item to remove from the portfolio. + example: "1331" + type: string + required: + - item + type: object + PortfolioRequest: + allOf: + - $ref: "#/components/schemas/PortfolioBase" + - properties: + members: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: + - "52164" + - "15363" + items: + description: Gid of an object. + type: string + type: array + workspace: + description: Gid of an object. + example: "167589" + type: string + type: object + PortfolioResponse: + allOf: + - $ref: "#/components/schemas/PortfolioBase" + - properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + created_by: + $ref: "#/components/schemas/UserCompact" + custom_field_settings: + description: Array of custom field settings applied to the portfolio. + items: + $ref: "#/components/schemas/CustomFieldSettingResponse" + type: array + due_on: + description: The localized day on which this portfolio is due. This takes a date with format YYYY-MM-DD. + example: 2019-09-15 + format: date-time + nullable: true + type: string + members: + items: + $ref: "#/components/schemas/UserCompact" + readOnly: true + type: array + owner: + $ref: "#/components/schemas/UserCompact" + permalink_url: + description: A url that points directly to the object within Asana. + example: https://app.asana.com/0/resource/123456789/list + readOnly: true + type: string + start_on: + description: "The day on which work for this portfolio begins, or null if the portfolio has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, start_on and due_on cannot be the same date.*" + example: 2019-09-14 + format: date + nullable: true + type: string + workspace: + allOf: + - $ref: "#/components/schemas/WorkspaceCompact" + - description: "*Create-only*. The workspace or organization that the portfolio belongs to." + type: object + type: object + Preview: + description: |- + A collection of rich text that will be displayed as a preview to another app. + + This is read-only except for a small group of whitelisted apps. + properties: + fallback: + description: Some fallback text to display if unable to display the full preview. + example: "Greg: Great! I like this idea.\\n\\nhttps//a_company.slack.com/archives/ABCDEFG/12345678" + type: string + footer: + description: Text to display in the footer. + example: Mar 17, 2019 1:25 PM + type: string + header: + description: Text to display in the header. + example: Asana for Slack + type: string + header_link: + description: Where the header will link to. + example: https://asana.comn/apps/slack + type: string + html_text: + description: HTML formatted text for the body of the preview. + example: Great! I like this idea. + type: string + text: + description: Text for the body of the preview. + example: Great! I like this idea. + type: string + title: + description: Text to display as the title. + example: Greg + type: string + title_link: + description: Where to title will link to. + example: https://asana.slack.com/archives/ABCDEFG/12345678 + type: string + readOnly: true + type: object + ProjectBase: + allOf: + - $ref: "#/components/schemas/ProjectCompact" + - properties: + archived: + description: True if the project is archived, false if not. Archived projects do not show in the UI by default and may be treated differently for queries. + example: false + type: boolean + color: + description: Color of the project. + enum: + - dark-pink + - dark-green + - dark-blue + - dark-red + - dark-teal + - dark-brown + - dark-orange + - dark-purple + - dark-warm-gray + - light-pink + - light-green + - light-blue + - light-red + - light-teal + - light-brown + - light-orange + - light-purple + - light-warm-gray + example: light-green + nullable: true + type: string + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + current_status: + allOf: + - $ref: "#/components/schemas/ProjectStatusResponse" + nullable: true + custom_field_settings: + description: Array of Custom Field Settings (in compact form). + items: + $ref: "#/components/schemas/CustomFieldSettingCompact" + readOnly: true + type: array + default_view: + description: The default view (list, board, calendar, or timeline) of a project. + enum: + - list + - board + - calendar + - timeline + example: calendar + type: string + due_date: + description: "*Deprecated: new integrations should prefer the due_on field.*" + example: 2019-09-15 + format: date-time + nullable: true + type: string + due_on: + description: The day on which this project is due. This takes a date with format YYYY-MM-DD. + example: 2019-09-15 + format: date-time + nullable: true + type: string + html_notes: + description: "[Opt In](/docs/input-output-options). The notes of the project with formatting as HTML." + example: These are things we need to purchase. + type: string + is_template: + description: "[Opt In](/docs/input-output-options). Determines if the project is a template." + example: false + type: boolean + members: + description: Array of users who are members of this project. + items: + $ref: "#/components/schemas/UserCompact" + readOnly: true + type: array + modified_at: + description: |- + The time at which this project was last modified. + *Note: This does not currently reflect any changes in associations such as tasks or comments that may have been added or removed from the project.* + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + notes: + description: Free-form textual information associated with the project (ie., its description). + example: These are things we need to purchase. + type: string + public: + description: True if the project is public to the organization. If false, do not share this project with other users in this organization without explicitly checking to see if they have access. + example: false + type: boolean + start_on: + description: "The day on which work for this project begins, or null if the project has no start date. This takes a date with `YYYY-MM-DD` format. *Note: `due_on` or `due_at` must be present in the request when setting or unsetting the `start_on` parameter. Additionally, start_on and due_on cannot be the same date.*" + example: 2019-09-14 + format: date + nullable: true + type: string + workspace: + allOf: + - $ref: "#/components/schemas/WorkspaceCompact" + - description: "*Create-only*. The workspace or organization this project is associated with. Once created, projects cannot be moved to a different workspace. This attribute can only be specified at creation time." + readOnly: true + type: object + type: object + ProjectCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *project* represents a prioritized list of tasks in Asana or a board with columns of tasks represented as cards. It exists in a single workspace or organization and is accessible to a subset of users in that workspace or organization, depending on its permissions. + properties: + name: + description: Name of the project. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer. + example: Stuff to buy + type: string + type: object + x-docs-overrides: + properties.resource_type.example: project + ProjectDuplicateRequest: + properties: + include: + description: The elements that will be duplicated to the new project. Tasks are always included. + enum: + - members + - notes + - forms + - task_notes + - task_assignee + - task_subtasks + - task_attachments + - task_dates + - task_dependencies + - task_followers + - task_tags + - task_projects + example: + - members + - task_notes + type: string + name: + description: The name of the new project. + example: New Project Name + type: string + schedule_dates: + description: A dictionary of options to auto-shift dates. `task_dates` must be included to use this option. Requires either `start_on` or `due_on`, but not both. + properties: + due_on: + description: Sets the last due date in the duplicated project to the given date. The rest of the due dates will be offset by the same amount as the due dates in the original project. + example: 2019-05-21 + type: string + should_skip_weekends: + description: Determines if the auto-shifted dates should skip weekends. + example: true + type: boolean + start_on: + description: Sets the first start date in the duplicated project to the given date. The rest of the start dates will be offset by the same amount as the start dates in the original project. + example: 2019-05-21 + type: string + required: + - should_skip_weekends + type: object + team: + description: Sets the team of the new project. If team is not defined, the new project will be in the same team as the the original project. + example: "12345" + type: string + required: + - name + type: object + ProjectMembershipBase: + $ref: "#/components/schemas/ProjectMembershipCompact" + ProjectMembershipCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: With the introduction of “comment-only” projects in Asana, a user’s membership in a project comes with associated permissions. These permissions (whether a user has full access to the project or comment-only access) are accessible through the project memberships endpoints described here. + properties: + user: + $ref: "#/components/schemas/UserCompact" + type: object + x-docs-overrides: + properties.resource_type.example: project_membership + ProjectMembershipResponse: + allOf: + - $ref: "#/components/schemas/ProjectMembershipBase" + - properties: + project: + $ref: "#/components/schemas/ProjectCompact" + description: "[Opt In](/docs/input-output-options). The project the user is a member of." + write_access: + description: Whether the user has full access to the project or has comment-only access. + enum: + - full_write + - comment_only + example: full_write + readOnly: true + type: string + type: object + ProjectRequest: + allOf: + - $ref: "#/components/schemas/ProjectBase" + - properties: + custom_fields: + additionalProperties: + description: '"{custom_field_gid}" => Value (Can be text, number, etc.)' + type: string + description: An object where each key is a Custom Field gid and each value is an enum gid, string, or number. + example: + "4578152156": Not Started + "5678904321": On Hold + type: object + followers: + description: "*Create-only*. Comma separated string of users. Followers are a subset of members who receive all notifications for a project, the default notification setting when adding members to a project in-product." + example: 12345,23456 + type: string + owner: + description: The current owner of the project, may be null. + example: "12345" + nullable: true + type: string + team: + description: "*Create-only*. The team that this project is shared with. This field only exists for projects in organizations." + example: "12345" + type: string + type: object + ProjectResponse: + allOf: + - $ref: "#/components/schemas/ProjectBase" + - properties: + custom_fields: + description: Array of Custom Fields. + items: + $ref: "#/components/schemas/CustomFieldCompact" + readOnly: true + type: array + followers: + description: Array of users following this project. Followers are a subset of members who receive all notifications for a project, the default notification setting when adding members to a project in-product. + items: + $ref: "#/components/schemas/UserCompact" + readOnly: true + type: array + icon: + description: The icon for a project. + enum: + - list + - board + - timeline + - calendar + - rocket + - people + - graph + - star + - bug + - light_bulb + - globe + - gear + - notebook + - computer + - check + - target + - html + - megaphone + - chat_bubbles + - briefcase + - page_layout + - mountain_flag + - puzzle + - presentation + - line_and_symbols + - speed_dial + - ribbon + - shoe + - shopping_basket + - map + - ticket + - coins + example: chat_bubbles + nullable: true + type: string + owner: + allOf: + - $ref: "#/components/schemas/UserCompact" + description: The current owner of the project, may be null. + nullable: true + permalink_url: + description: A url that points directly to the object within Asana. + example: https://app.asana.com/0/resource/123456789/list + readOnly: true + type: string + team: + allOf: + - $ref: "#/components/schemas/TeamCompact" + - description: "*Create-only*. The team that this project is shared with. This field only exists for projects in organizations." + type: object + type: object + ProjectSectionInsertRequest: + properties: + after_section: + description: Insert the given section immediately after the section specified by this parameter. + example: "987654" + type: string + before_section: + description: Insert the given section immediately before the section specified by this parameter. + example: "86420" + type: string + project: + description: The project in which to reorder the given section. + example: "123456" + type: string + section: + description: The section to reorder. + example: "321654" + type: string + required: + - project + - section + type: object + ProjectStatusBase: + allOf: + - $ref: "#/components/schemas/ProjectStatusCompact" + - properties: + color: + description: The color associated with the status update. + enum: + - green + - yellow + - red + - blue + type: string + html_text: + description: "[Opt In](/docs/input-output-options). The text content of the status update with formatting as HTML." + example: The project is moving forward according to plan... + type: string + text: + description: The text content of the status update. + example: The project is moving forward according to plan... + type: string + required: + - text + - color + type: object + ProjectStatusCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: 'A *project status* is an update on the progress of a particular project, and is sent out to all project followers when created. These updates include both text describing the update and a color code intended to represent the overall state of the project: "green" for projects that are on track, "yellow" for projects at risk, and "red" for projects that are behind.' + properties: + title: + description: The title of the project status update. + example: Status Update - Jun 15 + type: string + type: object + x-docs-overrides: + properties.resource_type.example: project_status + ProjectStatusRequest: + $ref: "#/components/schemas/ProjectStatusBase" + ProjectStatusResponse: + allOf: + - $ref: "#/components/schemas/ProjectStatusBase" + - properties: + author: + $ref: "#/components/schemas/UserCompact" + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + created_by: + $ref: "#/components/schemas/UserCompact" + modified_at: + description: |- + The time at which this project status was last modified. + *Note: This does not currently reflect any changes in associations such as comments that may have been added or removed from the project status.* + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + type: object + RemoveCustomFieldSettingRequest: + properties: + custom_field: + description: The custom field to remove from this portfolio. + example: "14916" + type: string + required: + - custom_field + type: object + RemoveFollowersRequest: + properties: + followers: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: 521621,621373 + type: string + required: + - followers + type: object + RemoveMembersRequest: + properties: + members: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: 521621,621373 + type: string + required: + - members + type: object + SectionBase: + $ref: "#/components/schemas/SectionCompact" + SectionCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *section* is a subdivision of a project that groups tasks together. It can either be a header above a list of tasks in a list view or a column in a board view of a project. + properties: + name: + description: The name of the section (i.e. the text displayed as the section header). + example: Next Actions + type: string + type: object + x-docs-overrides: + properties.resource_type.example: section + SectionRequest: + properties: + insert_after: + description: An existing section within this project after which the added section should be inserted. Cannot be provided together with insert_before. + example: "987654" + type: string + insert_before: + description: An existing section within this project before which the added section should be inserted. Cannot be provided together with insert_after. + example: "86420" + type: string + name: + description: The text to be displayed as the section name. This cannot be an empty string. + example: Next Actions + type: string + project: + description: "*Create-Only* The project to create the section in" + example: "13579" + type: string + required: + - project + - name + type: object + SectionResponse: + allOf: + - $ref: "#/components/schemas/SectionBase" + - properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + project: + $ref: "#/components/schemas/ProjectCompact" + projects: + description: "*Deprecated - please use project instead*" + items: + $ref: "#/components/schemas/ProjectCompact" + readOnly: true + type: array + type: object + SectionTaskInsertRequest: + properties: + insert_after: + description: An existing task within this section after which the added task should be inserted. Cannot be provided together with insert_before. + example: "987654" + type: string + insert_before: + description: An existing task within this section before which the added task should be inserted. Cannot be provided together with insert_after. + example: "86420" + type: string + task: + description: The task to add to this section. + example: "123456" + type: string + required: + - task + type: object + StoryBase: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A story represents an activity associated with an object in the Asana system. + properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + html_text: + description: "[Opt In](/docs/input-output-options). HTML formatted text for a comment. This will not include the name of the creator." + example: This is a comment. + type: string + is_pinned: + description: "*Conditional*. Whether the story should be pinned on the resource." + example: false + type: boolean + resource_subtype: + description: The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. + example: comment_added + readOnly: true + type: string + sticker_name: + description: The name of the sticker in this story. `null` if there is no sticker. + enum: + - green_checkmark + - people_dancing + - dancing_unicorn + - heart + - party_popper + - people_waving_flags + - splashing_narwhal + - trophy + - yeti_riding_unicorn + - celebrating_people + - determined_climbers + - phoenix_spreading_love + example: dancing_unicorn + type: string + text: + description: The plain text of the comment to add. Cannot be used with html_text. + example: This is a comment. + type: string + type: object + x-docs-overrides: + properties.resource_type.example: story + StoryCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A story represents an activity associated with an object in the Asana system. + properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + created_by: + $ref: "#/components/schemas/UserCompact" + resource_subtype: + description: The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. + example: comment_added + readOnly: true + type: string + text: + description: |- + *Create-only*. Human-readable text for the story or comment. + This will not include the name of the creator. + *Note: This is not guaranteed to be stable for a given type of story. For example, text for a reassignment may not always say “assigned to …” as the text for a story can both be edited and change based on the language settings of the user making the request.* + Use the `resource_subtype` property to discover the action that created the story. + example: marked today + type: string + type: object + x-docs-overrides: + properties.resource_type.example: story + StoryRequest: + $ref: "#/components/schemas/StoryBase" + StoryResponse: + allOf: + - $ref: "#/components/schemas/StoryBase" + - properties: + assignee: + $ref: "#/components/schemas/UserCompact" + description: "*Conditional*" + readOnly: true + created_by: + $ref: "#/components/schemas/UserCompact" + custom_field: + $ref: "#/components/schemas/CustomFieldCompact" + description: "*Conditional*" + readOnly: true + dependency: + $ref: "#/components/schemas/TaskCompact" + description: "*Conditional*" + readOnly: true + duplicate_of: + $ref: "#/components/schemas/TaskCompact" + description: "*Conditional*" + readOnly: true + duplicated_from: + $ref: "#/components/schemas/TaskCompact" + description: "*Conditional*" + readOnly: true + follower: + $ref: "#/components/schemas/UserCompact" + description: "*Conditional*" + readOnly: true + hearted: + description: |- + *Deprecated - please use likes instead* + *Conditional*. True if the story is hearted by the authorized user, false if not. + example: false + readOnly: true + type: boolean + hearts: + description: |- + *Deprecated - please use likes instead* + + *Conditional*. Array of likes for users who have hearted this story. + items: + $ref: "#/components/schemas/Like" + readOnly: true + type: array + is_edited: + description: "*Conditional*. Whether the text of the story has been edited after creation." + example: false + readOnly: true + type: boolean + liked: + description: "*Conditional*. True if the story is liked by the authorized user, false if not." + example: false + readOnly: true + type: boolean + likes: + description: "*Conditional*. Array of likes for users who have liked this story." + items: + $ref: "#/components/schemas/Like" + readOnly: true + type: array + new_approval_status: + description: "*Conditional*" + example: approved + readOnly: true + type: string + new_dates: + $ref: "#/components/schemas/StoryResponseDates" + new_enum_value: + $ref: "#/components/schemas/EnumOption" + description: "*Conditional*" + readOnly: true + new_multi_enum_values: + description: "*Conditional*" + items: + $ref: "#/components/schemas/EnumOption" + readOnly: true + type: array + new_name: + description: "*Conditional*" + example: This is the New Name + readOnly: true + type: string + new_number_value: + description: "*Conditional*" + example: 2 + readOnly: true + type: integer + new_resource_subtype: + description: "*Conditional*" + example: milestone + readOnly: true + type: string + new_section: + $ref: "#/components/schemas/SectionCompact" + description: "*Conditional*" + readOnly: true + new_text_value: + description: "*Conditional*" + example: This is the New Text + readOnly: true + type: string + num_hearts: + description: |- + *Deprecated - please use likes instead* + + *Conditional*. The number of users who have hearted this story. + example: 5 + readOnly: true + type: integer + num_likes: + description: "*Conditional*. The number of users who have liked this story." + example: 5 + readOnly: true + type: integer + old_approval_status: + description: "*Conditional*" + example: pending + readOnly: true + type: string + old_dates: + $ref: "#/components/schemas/StoryResponseDates" + old_enum_value: + $ref: "#/components/schemas/EnumOption" + description: "*Conditional*" + readOnly: true + old_multi_enum_values: + description: "*Conditional*" + items: + $ref: "#/components/schemas/EnumOption" + readOnly: true + type: array + old_name: + description: "*Conditional*'" + example: This was the Old Name + type: string + old_number_value: + description: "*Conditional*" + example: 1 + readOnly: true + type: integer + old_resource_subtype: + description: "*Conditional*" + example: default_task + readOnly: true + type: string + old_section: + $ref: "#/components/schemas/SectionCompact" + description: "*Conditional*" + readOnly: true + old_text_value: + description: "*Conditional*" + example: This was the Old Text + readOnly: true + type: string + previews: + description: |- + *Conditional*. A collection of previews to be displayed in the story. + + *Note: This property only exists for comment stories.* + items: + $ref: "#/components/schemas/Preview" + readOnly: true + type: array + project: + $ref: "#/components/schemas/ProjectCompact" + description: "*Conditional*" + readOnly: true + source: + description: The component of the Asana product the user used to trigger the story. + enum: + - web + - email + - mobile + - api + - unknown + example: web + readOnly: true + type: string + story: + $ref: "#/components/schemas/StoryCompact" + description: "*Conditional*" + readOnly: true + tag: + $ref: "#/components/schemas/TagCompact" + description: "*Conditional*" + readOnly: true + target: + description: The object this story is associated with. Currently may only be a task. + properties: + gid: + example: "1234" + type: string + name: + example: Bug Task + type: string + readOnly: true + task: + $ref: "#/components/schemas/TaskCompact" + description: "*Conditional*" + readOnly: true + type: object + StoryResponseDates: + description: "*Conditional*" + properties: + due_at: + example: 2019-09-15T02:06:58.158Z + format: date-time + type: string + due_on: + example: 2019-09-15 + format: date + type: string + start_on: + example: 2019-09-14 + format: date + type: string + readOnly: true + type: object + TagBase: + allOf: + - $ref: "#/components/schemas/TagCompact" + - properties: + color: + description: Color of the tag. + enum: + - dark-pink + - dark-green + - dark-blue + - dark-red + - dark-teal + - dark-brown + - dark-orange + - dark-purple + - dark-warm-gray + - light-pink + - light-green + - light-blue + - light-red + - light-teal + - light-brown + - light-orange + - light-purple + - light-warm-gray + example: light-green + type: string + type: object + TagCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *tag* is a label that can be attached to any task in Asana. It exists in a single workspace or organization. + properties: + name: + description: Name of the tag. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer. + example: Stuff to buy + type: string + type: object + x-docs-overrides: + properties.resource_type.example: tag + TagRequest: + allOf: + - $ref: "#/components/schemas/TagBase" + - properties: + followers: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: + - "12345" + - "42563" + items: + type: string + type: array + workspace: + description: Gid of an object. + example: "12345" + type: string + x-env-variable: true + type: object + TagResponse: + allOf: + - $ref: "#/components/schemas/TagBase" + - properties: + followers: + description: Array of users following this tag. + items: + $ref: "#/components/schemas/UserCompact" + readOnly: true + type: array + permalink_url: + description: A url that points directly to the object within Asana. + example: https://app.asana.com/0/resource/123456789/list + readOnly: true + type: string + workspace: + $ref: "#/components/schemas/WorkspaceCompact" + type: object + TaskAddFollowersRequest: + properties: + followers: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: + - "13579" + - "321654" + items: + type: string + type: array + required: + - followers + type: object + TaskAddProjectRequest: + properties: + insert_after: + description: A task in the project to insert the task after, or `null` to insert at the beginning of the list. + example: "124816" + nullable: true + type: string + insert_before: + description: A task in the project to insert the task before, or `null` to insert at the end of the list. + example: "432134" + nullable: true + type: string + project: + description: The project to add the task to. + example: "13579" + type: string + section: + description: A section in the project to insert the task into. The task will be inserted at the bottom of the section. + example: "987654" + nullable: true + type: string + required: + - project + type: object + TaskAddTagRequest: + properties: + tag: + description: The tag to add to the task. + example: "13579" + type: string + required: + - tag + type: object + TaskBase: + allOf: + - $ref: "#/components/schemas/TaskCompact" + - properties: + approval_status: + description: "*Conditional* Reflects the approval status of this task. This field is kept in sync with `completed`, meaning `pending` translates to false while `approved`, `rejected`, and `changes_requested` translate to true. If you set completed to true, this field will be set to `approved`." + enum: + - pending + - approved + - rejected + - changes_requested + example: pending + type: string + assignee_status: + description: '*Deprecated* Scheduling status of this task for the user it is assigned to. This field can only be set if the assignee is non-null. Setting this field to "inbox" or "upcoming" inserts it at the top of the section, while the other options will insert at the bottom.' + enum: + - today + - upcoming + - later + - new + - inbox + example: upcoming + type: string + completed: + description: True if the task is currently marked complete, false if not. + example: false + type: boolean + completed_at: + description: The time at which this task was completed, or null if the task is incomplete. + example: 2012-02-22T02:06:58.147Z + format: date-time + nullable: true + readOnly: true + type: string + completed_by: + $ref: "#/components/schemas/UserCompact" + readOnly: true + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + dependencies: + description: "[Opt In](/docs/input-output-options). Array of resources referencing tasks that this task depends on. The objects contain only the gid of the dependency." + items: + $ref: "#/components/schemas/AsanaResource" + readOnly: true + type: array + dependents: + description: "[Opt In](/docs/input-output-options). Array of resources referencing tasks that depend on this task. The objects contain only the ID of the dependent." + items: + $ref: "#/components/schemas/AsanaResource" + readOnly: true + type: array + due_at: + description: The UTC date and time on which this task is due, or null if the task has no due time. This takes an ISO 8601 date string in UTC and should not be used together with `due_on`. + example: 2019-09-15T02:06:58.147Z + format: date + nullable: true + type: string + due_on: + description: The localized date on which this task is due, or null if the task has no due date. This takes a date with `YYYY-MM-DD` format and should not be used together with due_at. + example: 2019-09-15 + format: date + nullable: true + type: string + external: + description: |- + *OAuth Required*. *Conditional*. This field is returned only if external values are set or included by using [Opt In] (/docs/input-output-options). + The external field allows you to store app-specific metadata on tasks, including a gid that can be used to retrieve tasks and a data blob that can store app-specific character strings. Note that you will need to authenticate with Oauth to access or modify this data. Once an external gid is set, you can use the notation `external:custom_gid` to reference your object anywhere in the API where you may use the original object gid. See the page on Custom External Data for more details. + example: + data: A blob of information + gid: my_gid + properties: + data: + example: A blob of information. + type: string + gid: + example: "1234" + type: string + type: object + hearted: + description: "*Deprecated - please use liked instead* True if the task is hearted by the authorized user, false if not." + example: true + readOnly: true + type: boolean + hearts: + description: "*Deprecated - please use likes instead* Array of likes for users who have hearted this task." + items: + $ref: "#/components/schemas/Like" + readOnly: true + type: array + html_notes: + description: "[Opt In](/docs/input-output-options). The notes of the text with formatting as HTML." + example: Mittens really likes the stuff from Humboldt. + type: string + is_rendered_as_separator: + description: "[Opt In](/docs/input-output-options). In some contexts tasks can be rendered as a visual separator; for instance, subtasks can appear similar to [sections](/docs/asana-sections) without being true `section` objects. If a `task` object is rendered this way in any context it will have the property `is_rendered_as_separator` set to `true`." + example: false + readOnly: true + type: boolean + liked: + description: True if the task is liked by the authorized user, false if not. + example: true + type: boolean + likes: + description: Array of likes for users who have liked this task. + items: + $ref: "#/components/schemas/Like" + readOnly: true + type: array + memberships: + description: "*Create-only*. Array of projects this task is associated with and the section it is in. At task creation time, this array can be used to add the task to specific sections. After task creation, these associations can be modified using the `addProject` and `removeProject` endpoints. Note that over time, more types of memberships may be added to this property." + items: + properties: + project: + $ref: "#/components/schemas/ProjectCompact" + section: + $ref: "#/components/schemas/SectionCompact" + type: object + readOnly: true + type: array + modified_at: + description: |- + The time at which this task was last modified. + + *Note: This does not currently reflect any changes in + associations such as projects or comments that may have been + added or removed from the task.* + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + name: + description: Name of the task. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer. + example: Buy catnip + type: string + notes: + description: Free-form textual information associated with the task (i.e. its description). + example: Mittens really likes the stuff from Humboldt. + type: string + num_hearts: + description: "*Deprecated - please use likes instead* The number of users who have hearted this task." + example: 5 + readOnly: true + type: integer + num_likes: + description: The number of users who have liked this task. + example: 5 + readOnly: true + type: integer + num_subtasks: + description: | + [Opt In](/docs/input-output-options). The number of subtasks on this task. + example: 3 + readOnly: true + type: integer + resource_subtype: + description: |- + The subtype of this resource. Different subtypes retain many of the same fields and behavior, but may render differently in Asana or represent resources with different semantic meaning. + The resource_subtype `milestone` represent a single moment in time. This means tasks with this subtype cannot have a start_date. + enum: + - default_task + - milestone + - section + - approval + example: default_task + type: string + start_on: + description: |- + The day on which work begins for the task , or null if the task has no start date. This takes a date with `YYYY-MM-DD` format. + *Note: `due_on` or `due_at` must be present in the request when setting or unsetting the `start_on` parameter.* + example: 2019-09-14 + format: date + nullable: true + type: string + type: object + TaskCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: The *task* is the basic object around which many operations in Asana are centered. + properties: + name: + description: The name of the task. + example: Bug Task + type: string + type: object + x-docs-overrides: + properties.resource_type.example: task + TaskCountResponse: + description: A response object returned from the task count endpoint. + properties: + num_completed_milestones: + description: The number of completed milestones in a project. + example: 3 + type: integer + num_completed_tasks: + description: The number of completed tasks in a project. + example: 150 + type: integer + num_incomplete_milestones: + description: The number of incomplete milestones in a project. + example: 7 + type: integer + num_incomplete_tasks: + description: The number of incomplete tasks in a project. + example: 50 + type: integer + num_milestones: + description: The number of milestones in a project. + example: 10 + type: integer + num_tasks: + description: The number of tasks in a project. + example: 200 + type: integer + type: object + TaskDuplicateRequest: + properties: + include: + description: The fields that will be duplicated to the new task. + enum: + - notes + - assignee + - subtasks + - attachments + - tags + - followers + - projects + - dates + - dependencies + - parent + example: + - notes + - assignee + type: string + name: + description: The name of the new task. + example: New Task Name + type: string + type: object + TaskRemoveFollowersRequest: + properties: + followers: + description: An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. + example: + - "13579" + - "321654" + items: + type: string + type: array + required: + - followers + type: object + TaskRemoveProjectRequest: + properties: + project: + description: The project to remove the task from. + example: "13579" + type: string + required: + - project + type: object + TaskRemoveTagRequest: + properties: + tag: + description: The tag to remove from the task. + example: "13579" + type: string + required: + - tag + type: object + TaskRequest: + allOf: + - $ref: "#/components/schemas/TaskBase" + - properties: + assignee: + description: Gid of a user. + example: "12345" + nullable: true + readOnly: false + type: string + x-env-variable: true + assignee_section: + description: |- + The *assignee section* is a subdivision of a project that groups tasks together in the assignee's "My Tasks" list. It can either be a header above a list of tasks in a list view or a column in a board view of "My Tasks." + The `assignee_section` property will be returned in the response only if the request was sent by the user who is the assignee of the task. Note that you can only write to `assignee_section` with the gid of an existing section visible in the user's "My Tasks" list. + example: "12345" + nullable: true + type: string + custom_fields: + additionalProperties: + description: '"{custom_field_gid}" => Value (Can be text, number, etc.)' + type: string + description: An object where each key is a Custom Field gid and each value is an enum gid, string, or number. + example: + "4578152156": Not Started + "5678904321": On Hold + type: object + followers: + description: '*Create-Only* An array of strings identifying users. These can either be the string "me", an email, or the gid of a user. In order to change followers on an existing task use `addFollowers` and `removeFollowers`.' + example: + - "12345" + items: + description: Gid of a user. + type: string + type: array + parent: + description: Gid of a task. + example: "12345" + nullable: true + readOnly: false + type: string + x-env-variable: true + projects: + description: "*Create-Only* Array of project gids. In order to change projects on an existing task use `addProject` and `removeProject`." + example: + - "12345" + items: + description: Gid of a project. + type: string + type: array + tags: + description: "*Create-Only* Array of tag gids. In order to change tags on an existing task use `addTag` and `removeTag`." + example: + - "12345" + items: + description: Gid of a tag. + type: string + type: array + workspace: + description: Gid of a workspace. + example: "12345" + readOnly: false + type: string + x-env-variable: true + type: object + TaskResponse: + allOf: + - $ref: "#/components/schemas/TaskBase" + - properties: + assignee: + allOf: + - $ref: "#/components/schemas/UserCompact" + nullable: true + assignee_section: + allOf: + - $ref: "#/components/schemas/SectionCompact" + - description: |- + The *assignee section* is a subdivision of a project that groups tasks together in the assignee's "My Tasks" list. It can either be a header above a list of tasks in a list view or a column in a board view of "My Tasks." + The `assignee_section` property will be returned in the response only if the request was sent by the user who is the assignee of the task. Note that you can only write to `assignee_section` with the gid of an existing section visible in the user's "My Tasks" list. + nullable: true + custom_fields: + description: Array of custom field values applied to the task. These represent the custom field values recorded on this project for a particular custom field. For example, these custom field values will contain an `enum_value` property for custom fields of type `enum`, a `text_value` property for custom fields of type `text`, and so on. Please note that the `gid` returned on each custom field value *is identical* to the `gid` of the custom field, which allows referencing the custom field metadata through the `/custom_fields/custom_field-gid` endpoint. + items: + $ref: "#/components/schemas/CustomFieldResponse" + readOnly: true + type: array + followers: + description: Array of users following this task. + items: + $ref: "#/components/schemas/UserCompact" + readOnly: true + type: array + parent: + allOf: + - $ref: "#/components/schemas/TaskCompact" + - description: The parent of this task, or `null` if this is not a subtask. This property cannot be modified using a PUT request but you can change it with the `setParent` endpoint. You can create subtasks by using the subtasks endpoint. + nullable: true + readOnly: true + type: object + permalink_url: + description: A url that points directly to the object within Asana. + example: https://app.asana.com/0/resource/123456789/list + readOnly: true + type: string + projects: + description: "*Create-only.* Array of projects this task is associated with. At task creation time, this array can be used to add the task to many projects at once. After task creation, these associations can be modified using the addProject and removeProject endpoints." + items: + $ref: "#/components/schemas/ProjectCompact" + readOnly: true + type: array + tags: + description: Array of tags associated with this task. In order to change tags on an existing task use `addTag` and `removeTag`. + example: + - gid: "59746" + name: Grade A + items: + $ref: "#/components/schemas/TagCompact" + readOnly: true + type: array + workspace: + allOf: + - $ref: "#/components/schemas/WorkspaceCompact" + - description: "*Create-only*. The workspace this task is associated with. Once created, task cannot be moved to a different workspace. This attribute can only be specified at creation time." + readOnly: true + type: object + type: object + TaskSetParentRequest: + properties: + insert_after: + description: A subtask of the parent to insert the task after, or `null` to insert at the beginning of the list. + example: "null" + type: string + insert_before: + description: A subtask of the parent to insert the task before, or `null` to insert at the end of the list. + example: "124816" + type: string + parent: + description: The new parent of the task, or `null` for no parent. + example: "987654" + type: string + required: + - parent + type: object + TeamAddUserRequest: + description: A user identification object for specification with the addUser/removeUser endpoints. + properties: + user: + description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. + example: "12345" + type: string + type: object + TeamBase: + $ref: "#/components/schemas/TeamCompact" + TeamCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *team* is used to group related projects and people together within an organization. Each project in an organization is associated with a team. + properties: + name: + description: The name of the team. + example: Marketing + type: string + type: object + x-docs-overrides: + properties.resource_type.example: team + TeamMembershipBase: + $ref: "#/components/schemas/TeamMembershipCompact" + TeamMembershipCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: This object represents a user's connection to a team. + properties: + is_guest: + description: Describes if the user is a guest in the team. + example: false + type: boolean + team: + $ref: "#/components/schemas/TeamCompact" + user: + $ref: "#/components/schemas/UserCompact" + type: object + x-docs-overrides: + properties.resource_type.example: team_membership + TeamMembershipResponse: + $ref: "#/components/schemas/TeamMembershipBase" + TeamRemoveUserRequest: + description: A user identification object for specification with the addUser/removeUser endpoints. + properties: + user: + description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. + example: "12345" + type: string + type: object + TeamRequest: + allOf: + - $ref: "#/components/schemas/TeamBase" + - properties: + description: + description: | + The description of the team. + example: All developers should be members of this team. + type: string + html_description: + description: | + The description of the team with formatting as HTML. + example: All developers should be members of this team. + type: string + organization: + description: | + The organization/workspace the team belongs to. + example: "123456789" + type: string + type: object + TeamResponse: + allOf: + - $ref: "#/components/schemas/TeamBase" + - properties: + description: + description: | + [Opt In](/docs/input-output-options). The description of the team. + example: All developers should be members of this team. + type: string + html_description: + description: | + [Opt In](/docs/input-output-options). The description of the team with formatting as HTML. + example: All developers should be members of this team. + type: string + organization: + allOf: + - $ref: "#/components/schemas/WorkspaceCompact" + - description: | + The organization/workspace the team belongs to. + type: object + permalink_url: + description: A url that points directly to the object within Asana. + example: https://app.asana.com/0/resource/123456789/list + readOnly: true + type: string + type: object + TimePeriodBase: + allOf: + - $ref: "#/components/schemas/TimePeriodCompact" + - properties: + parent: + $ref: "#/components/schemas/TimePeriodCompact" + type: object + TimePeriodCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - properties: + end_on: + description: The localized end date of the time period in `YYYY-MM-DD` format. + example: 2019-09-14 + type: string + period: + description: "The cadence and index of the time period. The value is one of: `FY`, `H1`, `H2`, `Q1`, `Q2`, `Q3`, or `Q4`." + enum: + - FY + - H1 + - H2 + - Q1 + - Q2 + - Q3 + - Q4 + example: Q1 + type: string + start_on: + description: The localized start date of the time period in `YYYY-MM-DD` format. + example: 2019-09-13 + type: string + type: object + x-docs-overrides: + properties.resource_type.example: time_period + TimePeriodResponse: + allOf: + - $ref: "#/components/schemas/TimePeriodBase" + - type: object + UserBase: + $ref: "#/components/schemas/UserCompact" + UserCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *user* object represents an account in Asana that can be given access to various workspaces, projects, and tasks. + properties: + name: + description: "*Read-only except when same user as requester*. The user’s name." + example: Greg Sanchez + type: string + type: object + x-docs-overrides: + properties.resource_type.example: user + UserRequest: + $ref: "#/components/schemas/UserBase" + UserResponse: + allOf: + - $ref: "#/components/schemas/UserBase" + - properties: + email: + description: The user's email address. + example: gsanchez@example.com + format: email + readOnly: true + type: string + photo: + description: A map of the user’s profile photo in various sizes, or null if no photo is set. Sizes provided are 21, 27, 36, 60, 128, and 1024. All images are in PNG format, except for 1024 (which is in JPEG format). + example: + image_1024x1024: https://... + image_128x128: https://... + image_21x21: https://... + image_27x27: https://... + image_36x36: https://... + image_60x60: https://... + nullable: true + properties: + image_1024x1024: + format: uri + type: string + image_128x128: + format: uri + type: string + image_21x21: + format: uri + type: string + image_27x27: + format: uri + type: string + image_36x36: + format: uri + type: string + image_60x60: + format: uri + type: string + readOnly: true + type: object + workspaces: + description: |- + Workspaces and organizations this user may access. + Note\: The API will only return workspaces and organizations that also contain the authenticated user. + items: + $ref: "#/components/schemas/WorkspaceCompact" + readOnly: true + type: array + type: object + UserTaskListBase: + $ref: "#/components/schemas/UserTaskListCompact" + UserTaskListCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A user task list represents the tasks assigned to a particular user. It provides API access to a user’s “My Tasks” view in Asana. + properties: + name: + description: The name of the user task list. + example: My Tasks in My Workspace + type: string + owner: + allOf: + - $ref: "#/components/schemas/UserCompact" + description: The owner of the user task list, i.e. the person whose My Tasks is represented by this resource. + readOnly: true + workspace: + allOf: + - $ref: "#/components/schemas/WorkspaceCompact" + description: The workspace in which the user task list is located. + readOnly: true + type: object + x-docs-overrides: + properties.resource_type.example: user_task_list + UserTaskListRequest: + $ref: "#/components/schemas/UserTaskListBase" + UserTaskListResponse: + $ref: "#/components/schemas/UserTaskListBase" + WebhookCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: Webhook objects represent the state of an active subscription for a server to be updated with information from Asana. This schema represents the subscription itself, not the objects that are sent to the server. For information on those please refer to the [Event](/docs/tocS_Event) schema. + properties: + active: + description: If true, the webhook will send events - if false it is considered inactive and will not generate events. + example: false + readOnly: true + type: boolean + resource: + $ref: "#/components/schemas/AsanaNamedResource" + target: + description: The URL to receive the HTTP POST. + example: https://example.com/receive-webhook/7654 + format: uri + readOnly: true + type: string + type: object + x-docs-overrides: + properties.resource_type.example: webhook + WebhookFilter: + description: A WebhookFilter can be passed on creation of a webhook in order to filter the types of actions that trigger delivery of an [Event](/docs/tocS_Event) + properties: + action: + description: The type of change on the **resource** to pass through the filter. For more information refer to `Event.action` in the [Event](/docs/tocS_Event) schema. This can be one of `changed`, `added`, `removed`, `deleted`, and `undeleted` depending on the nature of what has occurred on the resource. + example: changed + type: string + fields: + description: "*Conditional.* A whitelist of fields for events which will pass the filter when the resource is changed. These can be any combination of the fields on the resources themselves. This field is only valid for `action` of type `changed`" + example: + - due_at + - due_on + - dependencies + items: + type: string + type: array + resource_subtype: + description: The resource subtype of the resource that the filter applies to. This should be set to the same value as is returned on the `resource_subtype` field on the resources themselves. + example: milestone + type: string + resource_type: + description: The type of the resource which created the event when modified; for example, to filter to changes on regular tasks this field should be set to `task`. + example: task + type: string + type: object + WebhookRequest: + properties: + filters: + description: An array of WebhookFilter objects to specify a whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server. + items: + allOf: + - $ref: "#/components/schemas/WebhookFilter" + - description: A set of filters to specify a whitelist for what types of events will be delivered. + - type: object + type: array + resource: + description: A resource ID to subscribe to. Many Asana resources are valid to create webhooks on, but higher-level resources require filters. + example: "12345" + type: string + target: + description: The URL to receive the HTTP POST. The full URL will be used to deliver events from this webhook (including parameters) which allows encoding of application-specific state when the webhook is created. + example: https://example.com/receive-webhook/7654?app_specific_param=app_specific_value + format: uri + type: string + required: + - resource + - target + type: object + WebhookResponse: + allOf: + - $ref: "#/components/schemas/WebhookCompact" + - properties: + created_at: + description: The time at which this resource was created. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + filters: + description: Whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server. + items: + allOf: + - $ref: "#/components/schemas/WebhookFilter" + - description: A set of filters to specify a whitelist for what types of events will be delivered. + - type: object + type: array + last_failure_at: + description: The timestamp when the webhook last received an error when sending an event to the target. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + last_failure_content: + description: The contents of the last error response sent to the webhook when attempting to deliver events to the target. + example: 500 Server Error\n\nCould not complete the request + readOnly: true + type: string + last_success_at: + description: The timestamp when the webhook last successfully sent an event to the target. + example: 2012-02-22T02:06:58.147Z + format: date-time + readOnly: true + type: string + type: object + WorkspaceAddUserRequest: + description: A user identification object for specification with the addUser/removeUser endpoints. + properties: + user: + description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. + example: "12345" + type: string + type: object + WorkspaceBase: + $ref: "#/components/schemas/WorkspaceCompact" + WorkspaceCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: A *workspace* is the highest-level organizational unit in Asana. All projects and tasks have an associated workspace. + properties: + name: + description: The name of the workspace. + example: My Company Workspace + type: string + type: object + x-docs-overrides: + properties.resource_type.example: workspace + WorkspaceMembershipBase: + $ref: "#/components/schemas/WorkspaceMembershipCompact" + WorkspaceMembershipCompact: + allOf: + - $ref: "#/components/schemas/AsanaResource" + - description: This object determines if a user is a member of a workspace. + properties: + user: + $ref: "#/components/schemas/UserCompact" + workspace: + $ref: "#/components/schemas/WorkspaceCompact" + type: object + x-docs-overrides: + properties.resource_type.example: workspace_membership + WorkspaceMembershipRequest: + $ref: "#/components/schemas/WorkspaceMembershipBase" + WorkspaceMembershipResponse: + allOf: + - $ref: "#/components/schemas/WorkspaceMembershipBase" + - properties: + is_active: + description: Reflects if this user still a member of the workspace. + readOnly: true + type: boolean + is_admin: + description: Reflects if this user is an admin of the workspace. + readOnly: true + type: boolean + is_guest: + description: Reflects if this user is a guest of the workspace. + readOnly: true + type: boolean + user_task_list: + $ref: "#/components/schemas/UserTaskListResponse" + description: The user's "My Tasks" in the workspace. + readOnly: true + type: object + WorkspaceRemoveUserRequest: + description: A user identification object for specification with the addUser/removeUser endpoints. + properties: + user: + description: A string identifying a user. This can either be the string "me", an email, or the gid of a user. + example: "12345" + type: string + type: object + WorkspaceRequest: + $ref: "#/components/schemas/WorkspaceBase" + WorkspaceResponse: + allOf: + - $ref: "#/components/schemas/WorkspaceBase" + - properties: + email_domains: + description: The email domains that are associated with this workspace. + example: + - asana.com + items: + format: uri + type: string + type: array + is_organization: + description: Whether the workspace is an *organization*. + example: false + type: boolean + type: object + securitySchemes: + oauth2: + description: |- + We require that applications designed to access the Asana API on behalf of multiple users implement OAuth 2.0. + Asana supports the Authorization Code Grant flow. + flows: + authorizationCode: + authorizationUrl: https://app.asana.com/-/oauth_authorize + refreshUrl: https://app.asana.com/-/oauth_token + scopes: + default: Provides access to all endpoints documented in our API reference. If no scopes are requested, this scope is assumed by default. + email: Provides access to the user’s email through the OpenID Connect user info endpoint. + openid: Provides access to OpenID Connect ID tokens and the OpenID Connect user info endpoint. + profile: Provides access to the user’s name and profile photo through the OpenID Connect user info endpoint. + tokenUrl: https://app.asana.com/-/oauth_token + type: oauth2 + personalAccessToken: + description: A personal access token allows access to the api for the user who created it. This should be kept a secret and be treated like a password. + scheme: bearer + type: http diff --git a/test_specs/badref-burgershop.openapi.yaml b/test_specs/badref-burgershop.openapi.yaml new file mode 100644 index 0000000..c66ce6a --- /dev/null +++ b/test_specs/badref-burgershop.openapi.yaml @@ -0,0 +1,326 @@ +openapi: 3.0.1 +info: + title: Burger Shop + description: | + The best burger API at quobix. You can find the testiest burgers on the world + termsOfService: https://quobix.com + contact: + name: quobix + license: + name: Quobix + version: "1.2" +tags: + - name: "pizza" + description: false + externalDocs: + description: "Find out more" + url: "https://quobix.com/" + - name: "Dressing" + description: "Variety of dressings: cheese, veggie, oil and a lot more" + externalDocs: + description: "Find out more information about our products)" + url: "https://quobix.com/" +servers: + - url: https://quobix.com/api +paths: + /burgers: + post: + operationId: createBurger + tags: + - "Meat" + summary: Create a new burger + description: A new burger for our menu, yummy yum yum. + requestBody: + description: Give us the new burger! + content: + application/json: + schema: + $ref: '#/components/schemas/Burgers' + examples: + pbjBurger: + summary: A horrible, nutty, sticky mess. + value: + name: Peanut And Jelly + numPatties: 3 + cakeBurger: + summary: A sickly, sweet, atrocity + value: + name: Chocolate Cake Burger + numPatties: 5 + responses: + "200": + description: A tasty burger for you to eat. + content: + application/json: + schema: + $ref: '' + examples: + quarterPounder: + summary: A juicy two handler sammich + value: + name: Quarter Pounder with Cheese + numPatties: 1 + filetOFish: + summary: A tasty treat from the sea + value: + name: Filet-O-Fish + numPatties: 1 + links: + LocateBurger: + operationId: locateBurger + parameters: + burgerId: '$response.body#/id' + description: Go and get a tasty burger + "500": + description: Unexpected error creating a new burger. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: oh my goodness + value: + message: something went terribly wrong my friend, no new burger for you. + "422": + description: Unprocessable entity + content: + application/json: + schema: + $ref: 'http://go#/components/schemas/Error' + examples: + unexpectedError: + summary: invalid request + value: + message: unable to accept this request, looks bad, missing something. + /burgers/{burgerId}: + get: + operationId: locateBurger + tags: + - "Meat" + summary: Search a burger by ID - returns the burger with that identifier + description: Look up a tasty burger take it and enjoy it + parameters: + - in: path + name: burgerId + schema: + type: string + example: big-mac + description: the name of the burger. use this to order your food + required: true + responses: + "200": + description: A tasty burger for you to eat. Wide variety of products to choose from + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + quarterPounder: + summary: A juicy two handler sammich + value: + name: Quarter Pounder with Cheese + numPatties: 1 + filetOFish: + summary: A tasty treat from the sea + value: + name: Filet-O-Fish + numPatties: 1 + links: + ListBurgerDressings: + operationId: listBurgerDressings + parameters: + dressingId: 'something here' + description: 'Try the ketchup!' + "404": + description: Cannot find your burger. Sorry. We may have sold out of this type + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + notFound: + summary: burger missing + value: + message: can't find a burger with that ID, we may have sold out my friend. + "500": + description: Unexpected error. Sorry. + content: + application/json: + schema: + $ref: '' + examples: + unexpectedError: + summary: oh my stars + value: + message: something went terribly wrong my friend, burger location crashed! + /burgers/{burgerId}/dressings: + get: + operationId: listBurgerDressings + tags: + - "Dressing" + summary: Get a list of all dressings available + description: Same as the summary, look up a tasty burger, by its ID - the burger identifier + parameters: + - in: path + name: burgerId + schema: + type: string + example: big-mac + description: the name of the our fantastic burger. You can pick a name from our menu + required: true + responses: + "200": + description: an array of + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Dressing' + "404": + description: Cannot find your burger in which to list dressings. Sorry + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Unexpected error listing dressings for burger. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + /dressings/{dressingId}: + get: + operationId: getDressing + tags: + - "Dressing" + summary: Get a specific dressing - you can choose the dressing from our menu + description: Same as the summary, get a dressing, by its ID + parameters: + - in: path + name: dressingId + schema: + type: string + example: cheese + description: This is the unique identifier for the dressing items. + required: true + responses: + "404": + description: Cannot find your dressing, sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + "500": + description: Unexpected error getting a dressing. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Errors' + /dressings: + get: + operationId: getAllDressings + tags: + - "Dressing" + summary: Get all dressings available in our store + description: Get all dressings and choose from them + responses: + "200": + description: an array of dressings + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Dressing' + "500": + description: Unexpected error. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' +components: + schemas: + Error: + type: object + description: Error defining what went wrong when providing a specification. The message should help indicate the issue clearly. + properties: + message: + type: string + description: returns the error message if something wrong happens + example: No such burger as 'Big-Whopper' + Burger: + type: object + description: The tastiest food on the planet you would love to eat everyday + required: + - name + - numPatties + properties: + name: + type: string + description: The name of your tasty burger - burger names are listed in our menus + example: Big Mac + numPatties: + type: integer + description: The number of burger patties used + example: 2 + numTomatoes: + type: integer + description: how many slices of orange goodness would you like? + example: 1 + Fries: + type: object + description: golden slices of happy fun joy + required: + - potatoShape + - favoriteDressings + - favoriteDrink + properties: + seasoning: + type: array + description: herbs and spices for your golden joy + items: + type: string + description: type of herb or spice used to liven up the yummy + example: salt + potatoShape: + type: string + description: what type of potato shape? wedges? shoestring? + example: Crispy Shoestring + favoriteDressings: + type: array + items: + $ref: '#/components/schemas/NotHere' + favoriteBurger: + $ref: '#/components/schemas/Burger' + favoriteDrink: + $ref: '#/components/schemas/Drink' + Dressing: + type: object + description: This is the object that contains the information about the content of the dressing + required: + - name + properties: + name: + type: string + description: The name of your dressing you can pick up from the menu + example: Cheese + Drink: + type: object + description: a frosty cold beverage can be coke or sprite + required: + - size + - drinkType + properties: + ice: + type: boolean + drinkType: + description: select from coke or sprite + enum: + - coke + - sprite + size: + type: string + description: what size man? S/M/L + example: M \ No newline at end of file diff --git a/test_specs/burgershop.openapi.yaml b/test_specs/burgershop.openapi.yaml new file mode 100644 index 0000000..c7b17db --- /dev/null +++ b/test_specs/burgershop.openapi.yaml @@ -0,0 +1,356 @@ +openapi: 3.0.1 +info: + title: Burger Shop + description: | + The best burger API at quobix. You can find the testiest burgers on the world + termsOfService: https://quobix.com + contact: + name: quobix + license: + name: Quobix + version: "1.2" +tags: + - name: "Burgers" + description: "All kinds of yummy burgers." + externalDocs: + description: "Find out more" + url: "https://quobix.com/" + - name: "Dressing" + description: "Variety of dressings: cheese, veggie, oil and a lot more" + externalDocs: + description: "Find out more information about our products)" + url: "https://quobix.com/" +servers: + - url: https://quobix.com/api +paths: + /burgers: + post: + operationId: createBurger + tags: + - "Burgers" + summary: Create a new burger + description: A new burger for our menu, yummy yum yum. + requestBody: + description: Give us the new burger! + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + pbjBurger: + summary: A horrible, nutty, sticky mess. + value: + name: Peanut And Jelly + numPatties: 3 + cakeBurger: + summary: A sickly, sweet, atrocity + value: + name: Chocolate Cake Burger + numPatties: 5 + responses: + "200": + description: A tasty burger for you to eat. + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + quarterPounder: + summary: a yummy tasty two patty burger, filled with beefy goodness. + value: + name: Quarter Pounder with Cheese + numPatties: 1 + filetOFish: + summary: a cripsy fish sammich filled with ocean goodness. + value: + name: Filet-O-Fish + numPatties: 1 + links: + LocateBurger: + operationId: locateBurger + parameters: + burgerId: '$response.body#/id' + description: Go and get a tasty burger + AnotherLocateBurger: + operationId: locateBurger + parameters: + burgerId: '$response.body#/id' + description: Go and get a another really tasty burger + "500": + description: Unexpected error creating a new burger. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: oh my goodness + value: + message: something went terribly wrong my friend, no new burger for you. + "422": + description: Unprocessable entity + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: invalid request + value: + message: unable to accept this request, looks bad, missing something. + /burgers/{burgerId}: + get: + operationId: locateBurger + tags: + - "Burgers" + summary: Search a burger by ID - returns the burger with that identifier + description: Look up a tasty burger take it and enjoy it + parameters: + - in: path + name: burgerId + schema: + type: string + example: big-mac + description: the name of the burger. use this to order your food + required: true + responses: + "200": + description: A tasty burger for you to eat. Wide variety of products to choose from + content: + application/json: + schema: + $ref: '#/components/schemas/Burger' + examples: + quarterPounder: + summary: A juicy two handler sammich + value: + name: Quarter Pounder with Cheese + numPatties: 1 + filetOFish: + summary: A tasty treat from the sea + value: + name: Filet-O-Fish + numPatties: 1 + links: + ListBurgerDressings: + operationId: listBurgerDressings + parameters: + dressingId: 'something here' + description: 'Try the ketchup!' + "404": + description: Cannot find your burger. Sorry. We may have sold out of this type + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + notFound: + summary: burger missing + value: + message: can't find a burger with that ID, we may have sold out my friend. + "500": + description: Unexpected error. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + examples: + unexpectedError: + summary: oh my stars + value: + message: something went terribly wrong my friend, burger location crashed! + /burgers/{burgerId}/dressings: + get: + operationId: listBurgerDressings + tags: + - "Dressing" + summary: Get a list of all dressings available + description: Same as the summary, look up a tasty burger, by its ID - the burger identifier + parameters: + - in: path + name: burgerId + schema: + type: string + example: big-mac + description: the name of the our fantastic burger. You can pick a name from our menu + required: true + responses: + "200": + description: all the dressings for a burger. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Dressing' + example: + - name: Thousand Island + "404": + description: Cannot find your burger in which to list dressings. Sorry + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: There is no burger here + "500": + description: Unexpected error listing dressings for burger. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: computer says no dressings for this burger. + /dressings/{dressingId}: + get: + operationId: getDressing + tags: + - "Dressing" + summary: Get a specific dressing - you can choose the dressing from our menu + description: Same as the summary, get a dressing, by its ID + parameters: + - in: path + name: dressingId + schema: + type: string + example: cheese + description: This is the unique identifier for the dressing items. + required: true + responses: + "200": + description: a dressing + content: + application/json: + schema: + $ref: '#/components/schemas/Dressing' + example: + name: Butter Sauce + "404": + description: Cannot find your dressing, sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: No such dressing as 'Pizza' + "500": + description: Unexpected error getting a dressing. Sorry. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: failed looking up dressing by ID, our server borked. + /dressings: + get: + operationId: getAllDressings + tags: + - "Dressing" + summary: Get all dressings available in our store + description: Get all dressings and choose from them + responses: + "200": + description: an array of dressings + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Dressing' + example: + - name: Burger Sauce + "418": + description: I am a teapot. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: It's teapot time. + "500": + description: Something went wrong with getting dressings. + content: + application/json: + schema: + $ref: '#/components/schemas/Error' + example: + message: "failed looking up all dressings, something went wrong." +components: + schemas: + Error: + type: object + description: Error defining what went wrong when providing a specification. The message should help indicate the issue clearly. + properties: + message: + type: string + description: returns the error message if something wrong happens + example: No such burger as 'Big-Whopper' + Burger: + type: object + description: The tastiest food on the planet you would love to eat everyday + required: + - name + - numPatties + properties: + name: + type: string + description: The name of your tasty burger - burger names are listed in our menus + example: Big Mac + numPatties: + type: integer + description: The number of burger patties used + example: 2 + numTomatoes: + type: integer + description: how many slices of orange goodness would you like? + example: 1 + fries: + $ref: '#/components/schemas/Fries' + Fries: + type: object + description: golden slices of happy fun joy + required: + - potatoShape + - favoriteDrink + properties: + seasoning: + type: array + description: herbs and spices for your golden joy + items: + type: string + description: type of herb or spice used to liven up the yummy + example: salt + potatoShape: + type: string + description: what type of potato shape? wedges? shoestring? + example: Crispy Shoestring + favoriteDrink: + $ref: '#/components/schemas/Drink' + Dressing: + type: object + description: This is the object that contains the information about the content of the dressing + required: + - name + properties: + name: + type: string + description: The name of your dressing you can pick up from the menu + example: Cheese + Drink: + type: object + description: a frosty cold beverage can be coke or sprite + required: + - size + - drinkType + properties: + ice: + type: boolean + drinkType: + description: select from coke or sprite + enum: + - coke + - sprite + size: + type: string + description: what size man? S/M/L + example: M \ No newline at end of file diff --git a/test_specs/mixedref-burgershop.openapi.yaml b/test_specs/mixedref-burgershop.openapi.yaml index eb18490..fa10a45 100644 --- a/test_specs/mixedref-burgershop.openapi.yaml +++ b/test_specs/mixedref-burgershop.openapi.yaml @@ -166,7 +166,7 @@ paths: schema: type: array items: - $ref: 'test_files/burgershop.openapi.yaml#/components/schemas/Dressing' + $ref: '../test_specs/burgershop.openapi.yaml#/components/schemas/Dressing' "404": description: Cannot find your burger in which to list dressings. Sorry content: @@ -222,7 +222,7 @@ paths: schema: type: array items: - $ref: 'test_files/burgershop.openapi.yaml#/components/schemas/Dressing' + $ref: '../test_specs/burgershop.openapi.yaml#/components/schemas/Dressing' "500": description: Unexpected error. Sorry. content: diff --git a/test_specs/xsoar.json b/test_specs/xsoar.json new file mode 100644 index 0000000..6dca403 --- /dev/null +++ b/test_specs/xsoar.json @@ -0,0 +1,15357 @@ +{ + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json" + ], + "schemes": [ + "https" + ], + "swagger": "2.0", + "info": { + "description": "This is the public REST API to integrate with the Cortex XSOAR server.\nHTTP request can be sent using any HTTP-client.\n\nFor an example dedicated client take a look at: https://github.com/demisto/demisto-py.\n\nRequests must include API-key that can be generated in the Cortex XSOAR web client under 'Settings' -\u003e 'Integrations' -\u003e 'API keys'\n\n\nOptimistic Locking and Versioning\\:\n\nWhen using Cortex XSOAR REST API, you will need to make sure to work on the latest version of the item (incident, entry, etc.), otherwise, you will get a DB version error (which not allow you to override a newer item).\nIn addition, you can pass 'version\\: -1' to force data override (make sure that other users data might be lost).\n\nAssume that Alice and Bob both read the same data from Cortex XSOAR server, then they both changed the data, and then both tried to write the new versions back to the server. Whose changes should be saved? Alice’s? Bob’s?\nTo solve this, each data item in Cortex XSOAR has a numeric incremental version.\nIf Alice saved an item with version 4 and Bob trying to save the same item with version 3, Cortex XSOAR will rollback Bob request and returns a DB version conflict error.\nBob will need to get the latest item and work on it so Alice work will not get lost.\n\nExample request using 'curl'\\:\n\n```\ncurl 'https://hostname:443/incidents/search' -H 'content-type: application/json' -H 'accept: application/json' -H 'Authorization: \u003cAPI Key goes here\u003e' --data-binary '{\"filter\":{\"query\":\"-status:closed -category:job\",\"period\":{\"by\":\"day\",\"fromValue\":7}}}' --compressed\n```", + "title": "Cortex XSOAR API", + "version": "2.0.0" + }, + "host": "hostname:443", + "paths": { + "/apikeys/revoke/user/{username}": { + "post": { + "description": "Revoke API Key for user", + "produces": [ + "application/octet-stream" + ], + "operationId": "revokeUserAPIKey", + "parameters": [ + { + "type": "string", + "description": "The username which the API keys assigned to", + "name": "username", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "200 for success" + } + } + } + }, + "/automation": { + "post": { + "description": "Create or update a given automation.", + "summary": "Create or update automation", + "operationId": "saveOrUpdateScript", + "parameters": [ + { + "name": "automationScriptFilterWrapper", + "in": "body", + "schema": { + "$ref": "#/definitions/automationScriptFilterWrapper" + } + } + ], + "responses": { + "200": { + "description": "The saved automation.", + "schema": { + "$ref": "#/definitions/automationScriptResult" + } + } + } + } + }, + "/automation/copy": { + "post": { + "description": "Copy given automation", + "summary": "Copy automation", + "operationId": "copyScript", + "parameters": [ + { + "name": "automationScriptFilterWrapper", + "in": "body", + "schema": { + "$ref": "#/definitions/automationScriptFilterWrapper" + } + } + ], + "responses": { + "200": { + "description": "The saved automation.", + "schema": { + "$ref": "#/definitions/automationScriptResult" + } + } + } + } + }, + "/automation/delete": { + "post": { + "description": "Delete a given automation from the system.", + "summary": "Delete existing automation", + "operationId": "deleteAutomationScript", + "parameters": [ + { + "name": "automationScriptFilterWrapper", + "in": "body", + "schema": { + "$ref": "#/definitions/automationScriptFilterWrapper" + } + } + ], + "responses": { + "200": { + "description": "automation deleted" + } + } + } + }, + "/automation/import": { + "post": { + "description": "Import an automation to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import an automation", + "operationId": "importScript", + "parameters": [ + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved automation", + "schema": { + "$ref": "#/definitions/AutomationScript" + } + } + } + } + }, + "/automation/search": { + "post": { + "description": "Search Automation by filter", + "summary": "Search Automation (aka scripts)", + "operationId": "getAutomationScripts", + "parameters": [ + { + "name": "automationScriptFilter", + "in": "body", + "schema": { + "$ref": "#/definitions/automationScriptFilter" + } + } + ], + "responses": { + "200": { + "description": "automationScriptResult", + "schema": { + "$ref": "#/definitions/automationScriptResult" + } + } + } + } + }, + "/classifier/import": { + "post": { + "description": "Import a classifier to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import a classifier", + "operationId": "importClassifier", + "parameters": [ + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved classifiers", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/InstanceClassifier" + } + } + } + } + } + }, + "/contentpacks/installed/upload": { + "post": { + "description": "Upload Pack to the Server. Can be used to upload a Pack for an offline scenario or a Pack that hasn't been released.", + "consumes": [ + "multipart/form-data" + ], + "summary": "Upload Pack", + "operationId": "uploadContentPacks", + "parameters": [ + { + "type": "string", + "description": "if true will skip validation, use when migrate existing custom content to packs.", + "name": "skipValidation", + "in": "formData" + }, + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The pack was successfully uploaded" + } + } + } + }, + "/dashboards/import": { + "post": { + "description": "Import a dashboard to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import a dashboard", + "operationId": "importDashboard", + "parameters": [ + { + "type": "file", + "description": "The JSON file of the dashboard to import.", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved dashboard", + "schema": { + "$ref": "#/definitions/Dashboard" + } + } + } + } + }, + "/entry": { + "post": { + "description": "API to create an entry (markdown format) in existing investigation\nBody example: {\"investigationId\":\"1234\",\"data\":\"entry content…\"}", + "summary": "Create new entry in existing investigation", + "operationId": "investigationAddEntryHandler", + "parameters": [ + { + "name": "updateEntry", + "in": "body", + "schema": { + "$ref": "#/definitions/updateEntry" + } + } + ], + "responses": { + "200": { + "description": "Entry", + "schema": { + "$ref": "#/definitions/Entry" + } + }, + "412": { + "description": "In case of closed investigation" + } + } + } + }, + "/entry/download/{entryid}": { + "get": { + "description": "Download file from Cortex XSOAR by entry ID", + "produces": [ + "application/octet-stream" + ], + "summary": "Download file", + "operationId": "downloadFile", + "parameters": [ + { + "type": "string", + "description": "Entry ID", + "name": "entryid", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return the entry", + "schema": { + "type": "file" + } + } + } + } + }, + "/entry/execute/sync": { + "post": { + "description": "API to create an entry (markdown format) in existing investigation\nBody example: {\"investigationId\":\"1234\",\"data\":\"entry content…\"}", + "summary": "Create new entry in existing investigation", + "operationId": "investigationAddEntriesSync", + "parameters": [ + { + "name": "updateEntry", + "in": "body", + "schema": { + "$ref": "#/definitions/updateEntry" + } + } + ], + "responses": { + "200": { + "description": "An array of the children entries of the executed entry.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Entry" + } + } + }, + "412": { + "description": "In case of closed investigation" + } + } + } + }, + "/entry/exportArtifact": { + "post": { + "description": "Export an entry artifact", + "summary": "Export Artifact", + "operationId": "entryExportArtifact", + "parameters": [ + { + "name": "DownloadEntry", + "in": "body", + "schema": { + "$ref": "#/definitions/DownloadEntry" + } + } + ], + "responses": { + "200": { + "description": "created file name" + } + } + } + }, + "/entry/formatted": { + "post": { + "description": "API to create a formatted entry (table/json/text/markdown/html) in existing investigation\nBody example: {\"investigationId\":\"1234\",\"format\":\"table/json/text/markdown/html\",\"contents\":\"entry content…\"}", + "summary": "Create new formatted entry in existing investigation", + "operationId": "investigationAddFormattedEntryHandler", + "parameters": [ + { + "name": "uploadedEntry", + "in": "body", + "schema": { + "$ref": "#/definitions/uploadedEntry" + } + } + ], + "responses": { + "200": { + "description": "Entry", + "schema": { + "$ref": "#/definitions/Entry" + } + } + } + } + }, + "/entry/note": { + "post": { + "description": "API to mark entry as note, can be used also to remove the note\nBody example: {\"id\":1\\@1234\",\"version\":\"-1\",\"investigationId\":\"1234\",\"data\":\"true/false\"}", + "summary": "Mark entry as note", + "operationId": "updateEntryNote", + "parameters": [ + { + "name": "updateEntry", + "in": "body", + "schema": { + "$ref": "#/definitions/updateEntry" + } + } + ], + "responses": { + "200": { + "description": "Entry", + "schema": { + "$ref": "#/definitions/Entry" + } + } + } + } + }, + "/entry/tags": { + "post": { + "description": "API to set entry tags\nBody example: {\"id\":\"1\\@1234\",\"version\":\"-1\",\"investigationId\":\"1234\",\"tags\":[\"tag1\",\"tag2\"]\"}", + "summary": "Set entry tags", + "operationId": "updateEntryTagsOp", + "parameters": [ + { + "name": "updateEntryTags", + "in": "body", + "schema": { + "$ref": "#/definitions/updateEntryTags" + } + } + ], + "responses": { + "200": { + "description": "Entry", + "schema": { + "$ref": "#/definitions/Entry" + } + } + } + } + }, + "/evidence": { + "post": { + "description": "Save an evidence entity\nTo update evidence custom fields you should lowercase them and remove all spaces. For example: Scan IP -\u003e scanip", + "summary": "Save evidence", + "operationId": "saveEvidence", + "parameters": [ + { + "name": "Evidence", + "in": "body", + "schema": { + "$ref": "#/definitions/Evidence" + } + } + ], + "responses": { + "200": { + "description": "The new / updated Evidence", + "schema": { + "$ref": "#/definitions/Evidence" + } + } + } + } + }, + "/evidence/delete": { + "post": { + "description": "Delete an evidence entity", + "summary": "delete evidence", + "operationId": "deleteEvidenceOp", + "parameters": [ + { + "name": "deleteEvidence id", + "in": "body", + "schema": { + "$ref": "#/definitions/deleteEvidence" + } + } + ], + "responses": { + "200": { + "description": "Deleted evidence ID" + } + } + } + }, + "/evidence/search": { + "post": { + "description": "Search for an evidence entutiy by filter", + "summary": "Search evidence", + "operationId": "searchEvidence", + "parameters": [ + { + "name": "evidencesFilterWrapper", + "in": "body", + "schema": { + "$ref": "#/definitions/evidencesFilterWrapper" + } + } + ], + "responses": { + "200": { + "description": "EvidencesSearchResponse", + "schema": { + "$ref": "#/definitions/EvidencesSearchResponse" + } + } + } + } + }, + "/health": { + "get": { + "description": "Check if Cortex XSOAR server is available", + "summary": "Check if Cortex XSOAR server is available", + "operationId": "healthHandler", + "responses": { + "200": { + "description": "OK status", + "schema": { + "type": "string" + } + } + } + } + }, + "/health/containers": { + "get": { + "description": "Gets info on the containers - amount of running, inactive and total containers", + "summary": "Get health containers", + "operationId": "getContainers", + "responses": { + "200": { + "description": "Gets info on the containers - amount of running, inactive and total containers", + "schema": { + "$ref": "#/definitions/containersInfo" + } + } + } + } + }, + "/incident": { + "post": { + "description": "Create or update incident according to JSON structure.\nTo update incident custom fields you should lowercase them and remove all spaces. For example: Scan IP -\u003e scanip\nTo get the actual key name you can also go to Cortex XSOAR CLI and run /incident_add and look for the key that you would like to update\n\nUse the 'createInvestigation\\: true' to start the investigation process automatically. (by running a playbook based on incident type.)", + "summary": "Create single incident", + "operationId": "createIncident", + "parameters": [ + { + "name": "CreateIncidentRequest", + "in": "body", + "schema": { + "$ref": "#/definitions/CreateIncidentRequest" + } + } + ], + "responses": { + "200": { + "description": "IncidentWrapper", + "schema": { + "$ref": "#/definitions/IncidentWrapper" + } + } + } + } + }, + "/incident/batch": { + "post": { + "description": "Create or update an incidents batch\nTo update incident custom fields you should lowercase them and remove all spaces. For example: Scan IP -\u003e scanip\nTo get the actual key name you can also go to Cortex XSOAR CLI and run /incident_add and look for the key that you would like to update", + "summary": "Batch create incidents", + "operationId": "createIncidentsBatch", + "parameters": [ + { + "name": "UpdateDataBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/UpdateDataBatch" + } + } + ], + "responses": { + "200": { + "description": "IncidentSearchResponseWrapper", + "schema": { + "$ref": "#/definitions/IncidentSearchResponseWrapper" + } + } + } + } + }, + "/incident/batch/exportToCsv": { + "post": { + "description": "Exports an incidents batch to CSV file (returns file ID)", + "summary": "Batch export incidents to csv", + "operationId": "exportIncidentsToCsvBatch", + "parameters": [ + { + "name": "UpdateDataBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/UpdateDataBatch" + } + } + ], + "responses": { + "200": { + "description": "csv file name", + "schema": { + "type": "string" + } + } + } + } + }, + "/incident/batchClose": { + "post": { + "description": "Closes an incidents batch\nTo update incident custom fields you should lowercase them and remove all spaces. For example: Scan IP -\u003e scanip\nTo get the actual key name you can also go to Cortex XSOAR CLI and run /incident_add and look for the key that you would like to update", + "summary": "Batch close incidents", + "operationId": "closeIncidentsBatch", + "parameters": [ + { + "name": "UpdateDataBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/UpdateDataBatch" + } + } + ], + "responses": { + "200": { + "description": "IncidentSearchResponseWrapper", + "schema": { + "$ref": "#/definitions/IncidentSearchResponseWrapper" + } + } + } + } + }, + "/incident/batchDelete": { + "post": { + "description": "Deletes an incidents batch", + "summary": "Batch delete incidents", + "operationId": "deleteIncidentsBatch", + "parameters": [ + { + "name": "UpdateDataBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/UpdateDataBatch" + } + } + ], + "responses": { + "200": { + "description": "IncidentSearchResponseWrapper", + "schema": { + "$ref": "#/definitions/IncidentSearchResponseWrapper" + } + } + } + } + }, + "/incident/csv/{id}": { + "get": { + "description": "Get an incident CSV file that was exported, by ID", + "produces": [ + "application/octet-stream" + ], + "summary": "Get incident as CSV", + "operationId": "getIncidentAsCsv", + "parameters": [ + { + "type": "string", + "description": "CSV file to fetch (returned from batch export to csv call)", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return Csv file", + "schema": { + "type": "file" + } + } + } + } + }, + "/incident/json": { + "post": { + "description": "Create single incident from raw JSON, builds incident according to default mapping", + "summary": "Create incident from JSON", + "operationId": "createIncidentJson", + "responses": { + "200": { + "description": "IncidentWrapper", + "schema": { + "$ref": "#/definitions/IncidentWrapper" + } + } + } + } + }, + "/incident/upload/{id}": { + "post": { + "description": "Add file attachement to an incidents", + "consumes": [ + "multipart/form-data" + ], + "operationId": "incidentFileUpload", + "parameters": [ + { + "type": "string", + "description": "Incident id to update", + "name": "id", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "file name", + "name": "fileName", + "in": "formData" + }, + { + "type": "string", + "description": "file comment", + "name": "fileComment", + "in": "formData" + }, + { + "type": "string", + "description": "field name to hold the attachment details. If not specified, `attachment` will be used.", + "name": "field", + "in": "formData" + }, + { + "type": "boolean", + "description": "show media file", + "name": "showMediaFile", + "in": "formData" + }, + { + "type": "boolean", + "description": "If set to true will create an investigation. Used for uploading after creating incident.", + "name": "last", + "in": "formData" + }, + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "IncidentWrapper", + "schema": { + "$ref": "#/definitions/IncidentWrapper" + } + } + } + } + }, + "/incidentfield/tags/reset/{id}": { + "post": { + "description": "Sets the select values of a specific tags field. The values passed to the route override the existing select\nvalues of the field. To reset the select values pass an empty array.", + "summary": "Set tags field", + "operationId": "setTagsField", + "parameters": [ + { + "type": "string", + "description": "The machine name of the field prefixed with the type. For example indicator_tags or incident_dbotmirrortags", + "name": "id", + "in": "path", + "required": true + }, + { + "description": "The new select values of the field", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/tagsFieldValues" + } + } + ], + "responses": { + "200": { + "description": "empty" + } + } + } + }, + "/incidentfields/associatedTypes/{type}": { + "get": { + "description": "Get all incident fields associated with incident type", + "summary": "Get all incident fields associated with incident type", + "operationId": "getIncidentsFieldsByIncidentType", + "parameters": [ + { + "type": "string", + "description": "the name (case sensitive) of the incident type", + "name": "type", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Returns a list of incident fields associated with the incident type", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentField" + } + } + } + } + } + }, + "/incidentfields/import": { + "post": { + "description": "Import an incident field to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import an incident field", + "operationId": "importIncidentFields", + "parameters": [ + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved incident field", + "schema": { + "$ref": "#/definitions/incidentFieldsWithErrors" + } + } + } + } + }, + "/incidents/search": { + "post": { + "description": "This will search incidents across all indices\nYou can filter by multiple options", + "summary": "Search incidents by filter", + "operationId": "searchIncidents", + "parameters": [ + { + "name": "filter", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/SearchIncidentsData" + } + } + ], + "responses": { + "200": { + "description": "incidentSearchResponse", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/Incident" + } + }, + "total": { + "type": "integer" + } + } + } + } + } + } + }, + "/incidenttype": { + "post": { + "description": "API to create new Incident Type", + "summary": "Create new Incident Type", + "operationId": "createOrUpdateIncidentType", + "parameters": [ + { + "name": "IncidentType", + "in": "body", + "schema": { + "$ref": "#/definitions/IncidentType" + } + } + ], + "responses": { + "200": { + "description": "IncidentType", + "schema": { + "$ref": "#/definitions/IncidentType" + } + } + } + } + }, + "/incidenttypes/import": { + "post": { + "description": "Import an incident type to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import an incident type", + "operationId": "importIncidentTypesHandler", + "parameters": [ + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved incident type", + "schema": { + "$ref": "#/definitions/incidentTypesWithErrors" + } + } + } + } + }, + "/indicator/create": { + "post": { + "description": "Create an indicator entity\nTo update indicator custom fields you should lowercase them and remove all spaces. For example: Scan IP -\u003e scanip", + "summary": "Create Indicator", + "operationId": "indicatorsCreate", + "parameters": [ + { + "name": "IocObject", + "in": "body", + "schema": { + "$ref": "#/definitions/indicatorContext" + } + } + ], + "responses": { + "200": { + "description": "IocObject", + "schema": { + "$ref": "#/definitions/IocObject" + } + } + } + } + }, + "/indicator/edit": { + "post": { + "description": "Edit an indicator entity\nTo update indicator custom fields you should lowercase them and remove all spaces. For example: Scan IP -\u003e scanip", + "summary": "Edit Indicator", + "operationId": "indicatorsEdit", + "parameters": [ + { + "name": "IocObject", + "in": "body", + "schema": { + "$ref": "#/definitions/IocObject" + } + } + ], + "responses": { + "200": { + "description": "IocObject", + "schema": { + "$ref": "#/definitions/IocObject" + } + } + } + } + }, + "/indicator/whitelist": { + "post": { + "description": "Whitelists or deletes an indicator entity\nIn order to delete an indicator and not whitelist, set doNotWhitelist boolean field to true", + "summary": "Whitelists or deletes Indicator", + "operationId": "indicatorWhitelist", + "parameters": [ + { + "name": "updateIndicatorReputationData", + "in": "body", + "schema": { + "$ref": "#/definitions/updateIndicatorReputationData" + } + } + ], + "responses": { + "200": { + "description": "UpdateResponse", + "schema": { + "$ref": "#/definitions/UpdateResponse" + } + } + } + } + }, + "/indicators/batch/export/stix": { + "post": { + "description": "Exports an indicators batch to STIX file (returns file ID)", + "summary": "Batch export indicators to STIX", + "operationId": "exportIndicatorsToStixBatch", + "parameters": [ + { + "name": "genericIndicatorUpdateBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/genericIndicatorUpdateBatch" + } + } + ], + "responses": { + "200": { + "description": "STIX file name", + "schema": { + "type": "string" + } + } + } + } + }, + "/indicators/batch/exportToCsv": { + "post": { + "description": "Exports an indicators batch to CSV file (returns file ID)", + "summary": "Batch export indicators to csv", + "operationId": "exportIndicatorsToCsvBatch", + "parameters": [ + { + "description": "Required parameters from `genericIndicatorUpdateBatch`: `columns`,\n`filter`. You should also include either `all` or `ids`\n", + "name": "genericIndicatorUpdateBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/genericIndicatorUpdateBatch" + } + } + ], + "responses": { + "200": { + "description": "csv file name", + "schema": { + "type": "string" + } + } + } + } + }, + "/indicators/batchDelete": { + "post": { + "description": "Batch whitelist or delete indicators entities\nIn order to delete indicators and not whitelist, set doNotWhitelist boolean field to true", + "summary": "Batch whitelist or delete indicators", + "operationId": "deleteIndicatorsBatch", + "parameters": [ + { + "name": "genericIndicatorUpdateBatch", + "in": "body", + "schema": { + "$ref": "#/definitions/genericIndicatorUpdateBatch" + } + } + ], + "responses": { + "200": { + "description": "UpdateResponse", + "schema": { + "$ref": "#/definitions/UpdateResponse" + } + } + } + } + }, + "/indicators/csv/{id}": { + "get": { + "description": "Get an indicators CSV file that was exported, by ID", + "produces": [ + "application/octet-stream" + ], + "summary": "Get indicators as CSV", + "operationId": "getIndicatorsAsCsv", + "parameters": [ + { + "type": "string", + "description": "CSV file to fetch (returned from batch export to csv call)", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return Csv file", + "schema": { + "type": "file" + } + } + } + } + }, + "/indicators/feed/json": { + "post": { + "description": "Create indicators from raw JSON (similar to ingesting from a feed). Builds indicators according to the specified feed classifier,\nor uses the default one if not specified.\nIndicator properties (all optional except for value): **value** (string, required) | **type** (string) | **score** (number, 0-3,\ndefault `0`, where `0` means None, `1` Good, `2` Suspicious, and `3` Bad) | **sourceBrand** (string, default `\"External\"`) | **sourceInstance**\n(string, default `\"External\"`) | **reliability** (string, one of `\"A - Completely reliable\"`, `\"B - Usually reliable\"`, `\"C - Fairly\nreliable\"`, `\"D - Not usually reliable\"`, `\"E - Unreliable\"`, `\"F - Reliability cannot be judged\"`) | **expirationPolicy** (string,\none of `\"never\"`, `\"interval\"`, `\"indicatorType\"`) | **expirationInterval** (number, in minutes)", + "summary": "Create feed indicators from JSON", + "operationId": "createFeedIndicatorsJson", + "parameters": [ + { + "name": "FeedIndicatorsRequest", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/FeedIndicatorsRequest" + } + } + ], + "responses": { + "201": { + "description": "Indicators created" + } + } + } + }, + "/indicators/search": { + "post": { + "description": "Search indicators by filter", + "summary": "Search indicators", + "operationId": "indicatorsSearch", + "parameters": [ + { + "name": "IndicatorFilter", + "in": "body", + "schema": { + "$ref": "#/definitions/IndicatorFilter" + } + } + ], + "responses": { + "200": { + "description": "indicatorResult", + "schema": { + "$ref": "#/definitions/IndicatorResult" + } + } + } + } + }, + "/indicators/stix/v2/{id}": { + "get": { + "description": "Get an indicators STIX V2 file that was exported, by ID", + "produces": [ + "application/octet-stream" + ], + "summary": "Get indicators as STIX V2", + "operationId": "getIndicatorsAsSTIX", + "parameters": [ + { + "type": "string", + "description": "STIX V2 file to fetch (returned from batch export to STIX call)", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return STIX V2 file", + "schema": { + "type": "file" + } + } + } + } + }, + "/indicators/timeline/delete": { + "post": { + "description": "Delete indicators timeline by filter", + "summary": "Delete indicators timeline", + "operationId": "indicatorsTimelineDelete", + "parameters": [ + { + "name": "IndicatorFilter", + "in": "body", + "schema": { + "$ref": "#/definitions/IndicatorFilter" + } + } + ], + "responses": { + "200": { + "description": "IndicatorEditBulkResponse", + "schema": { + "$ref": "#/definitions/IndicatorEditBulkResponse" + } + } + } + } + }, + "/indicators/upload": { + "post": { + "description": "Create indicators from a file", + "consumes": [ + "multipart/form-data" + ], + "summary": "Create indicators", + "operationId": "indicatorsCreateBatch", + "parameters": [ + { + "type": "string", + "description": "file name", + "name": "fileName", + "in": "formData" + }, + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "IocObjects", + "schema": { + "$ref": "#/definitions/IocObjects" + } + } + } + } + }, + "/indicators/whitelist/update": { + "post": { + "description": "Create or update excluded indicators list", + "summary": "Create whitelisted", + "operationId": "createOrUpdateWhitelisted", + "parameters": [ + { + "name": "WhitelistedIndicator", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WhitelistedIndicator" + } + } + ], + "responses": { + "200": { + "description": "WhitelistedIndicator", + "schema": { + "$ref": "#/definitions/WhitelistedIndicator" + } + } + } + } + }, + "/inv-playbook/task/add/{investigationId}": { + "post": { + "description": "Add an ad-hoc task to a running playbook", + "summary": "Add ad-hoc task", + "operationId": "addAdHocTask", + "parameters": [ + { + "name": "InvPlaybookTaskData", + "in": "body", + "schema": { + "$ref": "#/definitions/InvPlaybookTaskData" + } + }, + { + "type": "string", + "description": "investigation ID", + "name": "investigationId", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/assign": { + "post": { + "description": "Assign a task to an owner", + "summary": "Assign task", + "operationId": "taskAssign", + "parameters": [ + { + "name": "invPlaybookAssignee", + "in": "body", + "schema": { + "$ref": "#/definitions/invPlaybookAssignee" + } + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/complete": { + "post": { + "description": "Complete a task with a file attachment\nDeprecated - use \"/v2/inv-playbook/task/complete\"", + "consumes": [ + "multipart/form-data" + ], + "summary": "[Deprecated] Complete a task", + "operationId": "completeTask", + "parameters": [ + { + "type": "string", + "description": "investigation ID", + "name": "investigationId", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "file name", + "name": "fileName", + "in": "formData" + }, + { + "type": "string", + "description": "file comment", + "name": "fileComment", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Task Id", + "name": "taskId", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "task input", + "name": "taskInput", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Version", + "name": "version", + "in": "formData", + "required": true + }, + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/complete/simple": { + "post": { + "description": "Complete a task without a file attachment", + "summary": "Complete task simple (no file)", + "operationId": "simpleCompleteTask", + "parameters": [ + { + "name": "invTaskInfo", + "in": "body", + "schema": { + "$ref": "#/definitions/invTaskInfo" + } + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/delete/{investigationId}/{invPBTaskId}": { + "post": { + "description": "Delete an ad-hoc task from a running playbook", + "summary": "Delete ad-hoc task", + "operationId": "deleteAdHocTask", + "parameters": [ + { + "type": "string", + "description": "investigation ID", + "name": "investigationId", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "ad-hoc task ID", + "name": "invPBTaskId", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/due": { + "post": { + "description": "Set the task due date", + "summary": "Set task due date", + "operationId": "taskSetDue", + "parameters": [ + { + "name": "invPlaybookDue", + "in": "body", + "schema": { + "$ref": "#/definitions/invPlaybookDue" + } + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/edit/{investigationId}": { + "post": { + "description": "Edit an ad-hoc task in a running playbook", + "summary": "Edit ad-hoc task", + "operationId": "editAdHocTask", + "parameters": [ + { + "name": "InvPlaybookTaskData", + "in": "body", + "schema": { + "$ref": "#/definitions/InvPlaybookTaskData" + } + }, + { + "type": "string", + "description": "investigation ID", + "name": "investigationId", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/note/add": { + "post": { + "description": "Add comment to a task", + "summary": "Task add comment", + "operationId": "taskAddComment", + "parameters": [ + { + "name": "invTaskInfo", + "in": "body", + "schema": { + "$ref": "#/definitions/invTaskInfo" + } + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/inv-playbook/task/uncomplete": { + "post": { + "description": "Reopen a closed task and change the status to uncomplete", + "summary": "Un complete a task", + "operationId": "taskUnComplete", + "parameters": [ + { + "name": "invTaskInfo", + "in": "body", + "schema": { + "$ref": "#/definitions/invTaskInfo" + } + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/investigations/search": { + "post": { + "description": "This will search investigations across all indices\nYou can filter by multiple options", + "summary": "Search investigations by filter", + "operationId": "searchInvestigations", + "parameters": [ + { + "name": "filter", + "in": "body", + "schema": { + "$ref": "#/definitions/SearchInvestigationsData" + } + } + ], + "responses": { + "200": { + "description": "investigationSearchResponse", + "schema": { + "$ref": "#/definitions/InvestigationSearchResponse" + } + } + } + } + }, + "/logout/everyone": { + "post": { + "description": "Sign out all open users sessions", + "summary": "Sign out all open users sessions", + "operationId": "logoutEveryoneHandler", + "responses": { + "204": { + "description": "no content", + "schema": { + "type": "string" + } + } + } + } + }, + "/logout/myself": { + "post": { + "description": "Sign out all my open sessions", + "summary": "Sign out all my open sessions", + "operationId": "logoutMyselfHandler", + "responses": { + "204": { + "description": "no content", + "schema": { + "type": "string" + } + } + } + } + }, + "/logout/myself/other": { + "post": { + "description": "Sign out all my other open sessions", + "summary": "Sign out all my other open sessions", + "operationId": "logoutMyselfOtherSessionsHandler", + "responses": { + "204": { + "description": "no content", + "schema": { + "type": "string" + } + } + } + } + }, + "/logout/user/{username}": { + "post": { + "description": "Sign out all sessions of the provided username", + "summary": "Sign out all sessions of the provided username", + "operationId": "logoutUserSessionsHandler", + "parameters": [ + { + "type": "string", + "description": "Username to logout", + "name": "username", + "in": "path", + "required": true + } + ], + "responses": { + "204": { + "description": "no content", + "schema": { + "type": "string" + } + } + } + } + }, + "/playbook/save/yaml": { + "post": { + "description": "Import and override playbook in Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import and override playbook", + "operationId": "overridePlaybookYaml", + "parameters": [ + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved playbook", + "schema": { + "$ref": "#/definitions/playbookWithWarnings" + } + } + } + } + }, + "/report/{id}/latest": { + "get": { + "description": "Get the latest report by its ID", + "produces": [ + "application/octet-stream" + ], + "summary": "Get latest report by ID", + "operationId": "downloadLatestReport", + "parameters": [ + { + "type": "string", + "description": "the ID of the report to get", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return a report file", + "schema": { + "type": "file" + } + } + } + } + }, + "/report/{id}/{requestId}/execute": { + "post": { + "description": "Execute a new report", + "summary": "Execute report", + "operationId": "executeReport", + "parameters": [ + { + "type": "string", + "description": "the ID of the report to get", + "name": "id", + "in": "path", + "required": true + }, + { + "type": "string", + "description": "the ID to register the request under", + "name": "requestId", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Request registered" + } + } + } + }, + "/reports": { + "get": { + "description": "Get all of the reports", + "summary": "Get all reports", + "operationId": "getAllReports", + "responses": { + "200": { + "description": "Return array of reports", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Report" + } + } + } + } + } + }, + "/reports/upload": { + "post": { + "description": "Upload a report to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Upload a report to Cortex XSOAR", + "operationId": "uploadReport", + "parameters": [ + { + "type": "file", + "description": "The report file to upload", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "A list of all the reports in the instance", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Report" + } + } + } + } + } + }, + "/reports/{id}": { + "get": { + "description": "Get a report by its ID", + "summary": "Get report by ID", + "operationId": "getReportByID", + "parameters": [ + { + "type": "string", + "description": "the ID of the report to get", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return a report", + "schema": { + "$ref": "#/definitions/Report" + } + } + } + } + }, + "/settings/audits": { + "post": { + "description": "Get audits by filter", + "summary": "Get Audits", + "operationId": "getAudits", + "parameters": [ + { + "name": "filter", + "in": "body", + "schema": { + "$ref": "#/definitions/GenericStringDateFilter" + } + } + ], + "responses": { + "200": { + "description": "auditResult", + "schema": { + "$ref": "#/definitions/auditResult" + } + } + } + } + }, + "/settings/docker-images": { + "get": { + "description": "Get list of all available docker image names", + "summary": "Get Docker Images", + "operationId": "getDockerImages", + "responses": { + "200": { + "description": "DockerImagesResult", + "schema": { + "$ref": "#/definitions/DockerImagesResult" + } + } + } + }, + "post": { + "description": "Create an image with a given list of dependencies", + "summary": "Create Image", + "operationId": "createDockerImage", + "parameters": [ + { + "name": "NewDockerImage", + "in": "body", + "schema": { + "$ref": "#/definitions/NewDockerImage" + } + } + ], + "responses": { + "200": { + "description": "NewDockerImageResult", + "schema": { + "$ref": "#/definitions/NewDockerImageResult" + } + } + } + } + }, + "/settings/integration-conf/upload": { + "post": { + "description": "Upload an integration to Cortex XSOAR", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Upload an integration", + "operationId": "integrationUpload", + "parameters": [ + { + "type": "file", + "description": "file", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved configuration", + "schema": { + "$ref": "#/definitions/ModuleConfiguration" + } + } + } + } + }, + "/statistics/application/roi": { + "delete": { + "description": "Reset ROI widget", + "summary": "Reset ROI widget", + "operationId": "resetROIWidget", + "responses": { + "200": { + "description": "ROI widget has been reset" + } + } + } + }, + "/statistics/dashboards/query": { + "post": { + "description": "Get a given dashboard statistics result.\nDeprecated - use \"/v2/statistics/dashboards/query", + "produces": [ + "application/json" + ], + "summary": "[Deprecated] Get Dashboard Statistics", + "operationId": "GetStatsForDashboardOldFormat", + "responses": { + "200": { + "description": "Return an array of stats results for each widget cell in dashboard.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/StatsQueryResponse" + } + } + } + } + } + }, + "/statistics/widgets/query": { + "post": { + "description": "Get a given widget object statistics result.\nNote: This route has many return types based on the widget type and data. Each 200X represent a 200 OK request of specific widget type and data\n\nDeprecated - use \"/v2/statistics/widgets/query", + "produces": [ + "application/json" + ], + "summary": "[Deprecated] Get Widget Statistics", + "operationId": "GetStatsForWidgetOldFormat", + "responses": { + "200": { + "description": "Response differ according to the widget type\n - Incident data type of a \"table\" or \"list\" widget returns incidentSearchResponse\n total:\n type: integer\n data:\n type: array\n items:\n \"$ref\": \"#/definitions/Incident\"\n - Indicators data type of a \"table\" or \"list\" widget returns IoCsResponse\n total:\n type: integer\n data:\n type: array\n items:\n \"$ref\": \"#/definitions/IocObject\"\n - Number widget returns a simple number\n type: integer\n - Trend widget returns a trend object\n \"$ref\": \"#/definitions/StatsTrendsResponse\"\n - Text widget returns a text object, describing the final text and the placeholders values.\n \"$ref\": \"#/definitions/StatsTextResponse\"\n - A chart data array by groups. When requesting a date, the key is the date string, according to the specified time frame. Empty groups (dates) are also returned.\n type: array\n items:\n \"$ref\": \"#/definitions/Group\"", + "schema": { + "type": "object" + } + } + } + } + }, + "/unit42intel/indicator": { + "get": { + "description": "Get samples from Unit42 Intel by a given filter", + "operationId": "getUnit42IndicatorHandler", + "parameters": [ + { + "type": "string", + "name": "value", + "in": "query" + }, + { + "type": "string", + "name": "type", + "in": "query" + } + ], + "responses": { + "200": { + "description": "Unit42IndicatorLookup", + "schema": { + "$ref": "#/definitions/Unit42IndicatorLookup" + } + } + } + } + }, + "/unit42intel/samples/search": { + "post": { + "description": "Get samples from Unit42 Intel by a given filter", + "operationId": "samplesSearchHandler", + "parameters": [ + { + "name": "filter", + "in": "body", + "schema": { + "$ref": "#/definitions/Unit42SampleSearchFilter" + } + } + ], + "responses": { + "200": { + "description": "samplesResults", + "schema": { + "$ref": "#/definitions/samplesResults" + } + } + } + } + }, + "/unit42intel/sessions/search": { + "post": { + "description": "Get sessions from Unit42 Intel by a given filter", + "operationId": "sessionsSearchHandler", + "parameters": [ + { + "name": "filter", + "in": "body", + "schema": { + "$ref": "#/definitions/Unit42SearchFilter" + } + } + ], + "responses": { + "200": { + "description": "sessionsResults", + "schema": { + "$ref": "#/definitions/sessionsResults" + } + } + } + } + }, + "/v2/inv-playbook/task/complete": { + "post": { + "description": "Complete a task with command and multiple file attachments", + "consumes": [ + "multipart/form-data" + ], + "summary": "Complete a task", + "operationId": "completeTaskV2", + "parameters": [ + { + "type": "string", + "description": "investigation ID", + "name": "investigationId", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Task Id", + "name": "taskId", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Task comment or command to run", + "name": "taskComment", + "in": "formData" + }, + { + "type": "string", + "description": "Task input", + "name": "taskInput", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Version", + "name": "version", + "in": "formData", + "required": true + }, + { + "type": "file", + "description": "Files to attach to the task", + "name": "file", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "file names separated by %###% (only if files provided)", + "name": "fileNames", + "in": "formData" + }, + { + "type": "string", + "description": "file comment separated by %###% (only if files provided)", + "name": "fileComments", + "in": "formData" + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/v2/inv-playbook/task/form/submit": { + "post": { + "description": "Submit a data collection task with given answers and multiple file attachments", + "consumes": [ + "multipart/form-data" + ], + "summary": "Complete a task", + "operationId": "submitTaskForm", + "parameters": [ + { + "type": "string", + "description": "investigation ID", + "name": "investigationId", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "Task Id", + "name": "taskId", + "in": "formData", + "required": true + }, + { + "type": "string", + "description": "the answers to the task form. Answers are keyed by numerical question id", + "name": "answers", + "in": "formData", + "required": true + }, + { + "type": "file", + "description": "Files to attach to the task", + "name": "file", + "in": "formData" + } + ], + "responses": { + "200": { + "description": "InvestigationPlaybook", + "schema": { + "$ref": "#/definitions/InvestigationPlaybook" + } + } + } + } + }, + "/v2/statistics/dashboards/query": { + "post": { + "description": "Get a given dashboard statistics result.", + "produces": [ + "application/json" + ], + "summary": "Get Dashboard Statistics", + "operationId": "GetStatsForDashboard", + "responses": { + "200": { + "description": "Return an array of stats results for each widget cell in dashboard.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/StatsQueryResponse" + } + } + } + } + } + }, + "/v2/statistics/widgets/query": { + "post": { + "description": "Get a given widget object statistics result.\nNote: This route has many return types based on the widget type and data. Each 200X represent a 200 OK request of specific widget type and data", + "produces": [ + "application/json" + ], + "summary": "Get Widget Statistics", + "operationId": "GetStatsForWidget", + "responses": { + "200": { + "description": "Response differ according to the widget type\n - Incident data type of a \"table\" or \"list\" widget returns incidentSearchResponse\n total:\n type: integer\n data:\n type: array\n items:\n \"$ref\": \"#/definitions/Incident\"\n - Indicators data type of a \"table\" or \"list\" widget returns IoCsResponse\n total:\n type: integer\n data:\n type: array\n items:\n \"$ref\": \"#/definitions/IocObject\"\n - Number widget returns a simple number\n type: integer\n - Trend widget returns a trend object\n \"$ref\": \"#/definitions/StatsTrendsResponse\"\n - Text widget returns a text object, describing the final text and the placeholders values.\n \"$ref\": \"#/definitions/StatsTextResponse\"\n - Line chart widget or Column chart widget returns StatsResponseWithReferenceLine\n \"$ref\": \"#/definitions/StatsResponseWithReferenceLine\"\n - A chart data array by groups. When requesting a date, the key is the date string, according to the specified time frame. Empty groups (dates) are also returned.\n type: array\n items:\n \"$ref\": \"#/definitions/Group\"", + "schema": { + "type": "object" + } + } + } + } + }, + "/widgets": { + "get": { + "description": "Get all widgets", + "produces": [ + "application/json" + ], + "operationId": "getAllWidgets", + "responses": { + "200": { + "description": "Return all the widgets in the system.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/Widget" + } + } + } + } + }, + "post": { + "description": "Add or update a given widget based on Id.", + "summary": "Add or update a widget", + "operationId": "saveWidget", + "parameters": [ + { + "name": "widget", + "in": "body", + "schema": { + "$ref": "#/definitions/Widget" + } + } + ], + "responses": { + "200": { + "description": "The saved widget newest version.", + "schema": { + "$ref": "#/definitions/Widget" + } + } + } + } + }, + "/widgets/import": { + "post": { + "description": "Import a widget to the system, ignoring ID or version, used to import new widgets.", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "summary": "Import a widget", + "operationId": "importWidget", + "parameters": [ + { + "type": "file", + "description": "The JSON file of the widget to import.", + "name": "file", + "in": "formData", + "required": true + } + ], + "responses": { + "200": { + "description": "The saved widget", + "schema": { + "$ref": "#/definitions/Widget" + } + } + } + } + }, + "/widgets/{id}": { + "get": { + "description": "Get a widget object by a given ID.", + "produces": [ + "application/json" + ], + "summary": "Get widget by ID", + "operationId": "getWidget", + "parameters": [ + { + "type": "string", + "description": "The ID of widget to get.", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "Return the widget if found.", + "schema": { + "$ref": "#/definitions/Widget" + } + } + } + }, + "delete": { + "description": "Remove a given widget Id from the system.", + "summary": "Remove existing widget", + "operationId": "deleteWidget", + "parameters": [ + { + "type": "string", + "description": "Widget id to remove (returned from widget save or widgets get)", + "name": "id", + "in": "path", + "required": true + } + ], + "responses": { + "200": { + "description": "widget deleted" + } + } + } + }, + "/workers/status": { + "get": { + "description": "Get workers status", + "summary": "Get workers status", + "operationId": "workersStatusHandler", + "responses": { + "200": { + "description": "Workers status", + "schema": { + "$ref": "#/definitions/Info" + } + } + } + } + } + }, + "definitions": { + "AccountsMultiErrors": { + "type": "object", + "title": "AccountsMultiErrors ...", + "properties": { + "accountErrors": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AccountErrors" + }, + "totalAccounts": { + "type": "integer", + "format": "int64", + "x-go-name": "TotalAccounts" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "AdvanceArg": { + "description": "Simple: plain text such as \"hello\" (constant) or ${File.ID} (DT expression)\nComplex: struct with all info that is necessary to compute argument value from context (Root, Filters, Accessor \u0026 Transformers)]\nKeyValue: list of key-value", + "type": "object", + "title": "AdvanceArg - advance argument can be one of the following:", + "properties": { + "complex": { + "$ref": "#/definitions/ComplexArg" + }, + "keyValue": { + "type": "array", + "items": { + "$ref": "#/definitions/KeyValueArg" + }, + "x-go-name": "KeyValue" + }, + "simple": { + "type": "string", + "x-go-name": "Simple" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ArgAtomicFilter": { + "description": "ArgAtomicFilter - operator with two sides that return true/false", + "type": "object", + "properties": { + "ignoreCase": { + "type": "boolean", + "x-go-name": "IgnoreCase" + }, + "left": { + "$ref": "#/definitions/OperatorArgument" + }, + "operator": { + "$ref": "#/definitions/FilterOperatorID" + }, + "right": { + "$ref": "#/definitions/OperatorArgument" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ArgFilter": { + "description": "ArgFilter - represent a slice of atomic filters with OR condition between them (e.i. - atomic1 OR atomic2 OR ...)", + "type": "array", + "items": { + "$ref": "#/definitions/ArgAtomicFilter" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ArgTransformer": { + "type": "object", + "title": "ArgTransformer ...", + "properties": { + "args": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/OperatorArgument" + }, + "x-go-name": "Args" + }, + "operator": { + "$ref": "#/definitions/TransformerOperatorID" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Argument": { + "description": "Argument to a module command", + "type": "object", + "properties": { + "auto": { + "type": "string", + "x-go-name": "Auto" + }, + "default": { + "type": "boolean", + "x-go-name": "Default" + }, + "defaultValue": { + "type": "string", + "x-go-name": "DefaultValue" + }, + "deprecated": { + "type": "boolean", + "x-go-name": "Deprecated" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "isArray": { + "type": "boolean", + "x-go-name": "IsArray" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "predefined": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Predefined" + }, + "required": { + "type": "boolean", + "x-go-name": "Required" + }, + "secret": { + "type": "boolean", + "x-go-name": "Secret" + }, + "type": { + "$ref": "#/definitions/ArgumentType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ArgumentType": { + "type": "string", + "title": "ArgumentType ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "ArrayPositions": { + "type": "array", + "items": { + "type": "integer", + "format": "uint64" + }, + "x-go-package": "github.com/blevesearch/bleve/v2/search" + }, + "Attachment": { + "type": "object", + "title": "Attachment ...", + "properties": { + "description": { + "type": "string", + "x-go-name": "Description" + }, + "isTempPath": { + "type": "boolean", + "x-go-name": "IsTempPath" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "path": { + "type": "string", + "x-go-name": "Path" + }, + "showMediaFile": { + "type": "boolean", + "x-go-name": "ShowMediaFile" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Audit": { + "description": "Audit holds the auditing details. This includes all common fields, the action in a string blob and the user who\nperformed the action in a user struct.", + "type": "object", + "properties": { + "action": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Action" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "identifier": { + "type": "string", + "x-go-name": "Identifier" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "object": { + "type": "string", + "x-go-name": "Object" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "user": { + "type": "string", + "x-go-name": "User" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "AutomationScript": { + "description": "AutomationScript represents a script that will run on the system", + "type": "object", + "properties": { + "MainEngineInfo": { + "$ref": "#/definitions/EngineInfo" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "arguments": { + "type": "array", + "items": { + "$ref": "#/definitions/Argument" + }, + "x-go-name": "Args" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "comment": { + "type": "string", + "x-go-name": "Comment" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "contextKeys": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ContextKeys" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "dependsOn": { + "description": "This fields indicates which commands this script depends on", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "DependsOn" + }, + "deprecated": { + "type": "boolean", + "x-go-name": "Deprecated" + }, + "detached": { + "type": "boolean", + "x-go-name": "Detached" + }, + "dockerImage": { + "type": "string", + "x-go-name": "DockerImage" + }, + "enabled": { + "type": "boolean", + "x-go-name": "Enabled" + }, + "engine": { + "description": "Engine that will run the script", + "type": "string", + "x-go-name": "Engine" + }, + "engineGroup": { + "description": "EngineGroup that will run the script", + "type": "string", + "x-go-name": "EngineGroup" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "important": { + "type": "array", + "items": { + "$ref": "#/definitions/Important" + }, + "x-go-name": "Important" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/Output" + }, + "x-go-name": "Outputs" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "polling": { + "type": "boolean", + "x-go-name": "Polling" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "private": { + "type": "boolean", + "x-go-name": "Private" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "pswd": { + "type": "string", + "x-go-name": "Password" + }, + "rawTags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RawTags" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "runAs": { + "type": "string", + "x-go-name": "RunAs" + }, + "runOnce": { + "type": "boolean", + "x-go-name": "RunOnce" + }, + "script": { + "type": "string", + "x-go-name": "Script" + }, + "scriptTarget": { + "$ref": "#/definitions/ScriptTarget" + }, + "searchableName": { + "type": "string", + "x-go-name": "DoNotUseName" + }, + "sensitive": { + "type": "boolean", + "x-go-name": "Sensitive" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourceScripID": { + "type": "string", + "x-go-name": "SourceScripID" + }, + "subtype": { + "$ref": "#/definitions/ScriptSubType" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "timeout": { + "$ref": "#/definitions/Duration" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "type": { + "$ref": "#/definitions/ScriptType" + }, + "user": { + "type": "string", + "x-go-name": "User" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "visualScript": { + "type": "string", + "x-go-name": "VisualScript" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "BaseFilter": { + "description": "BaseFilter provides common fields used by most filters such as paging, sizing and sorting" + }, + "Bucket": { + "type": "object", + "title": "Bucket - represents a specific condition term for merging groups into a custom group.", + "properties": { + "field": { + "type": "string", + "x-go-name": "Field" + }, + "operator": { + "type": "string", + "x-go-name": "Operator" + }, + "right": { + "type": "string", + "x-go-name": "RHS" + }, + "type": { + "$ref": "#/definitions/OperatorType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Buckets": { + "type": "array", + "title": "Buckets - Array of conditional buckets, related by 'OR'", + "items": { + "$ref": "#/definitions/Bucket" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Command": { + "description": "Command supported by a module", + "type": "object", + "properties": { + "arguments": { + "type": "array", + "items": { + "$ref": "#/definitions/Argument" + }, + "x-go-name": "Arguments" + }, + "cartesian": { + "type": "boolean", + "x-go-name": "Cartesian" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "deprecated": { + "type": "boolean", + "x-go-name": "Deprecated" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "docsHidden": { + "type": "boolean", + "x-go-name": "DocsHidden" + }, + "execution": { + "type": "boolean", + "x-go-name": "Execution" + }, + "gomAction": { + "type": "boolean", + "x-go-name": "GOMAction" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "important": { + "type": "array", + "items": { + "$ref": "#/definitions/Important" + }, + "x-go-name": "Important" + }, + "indicatorAction": { + "type": "boolean", + "x-go-name": "IndicatorAction" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/Output" + }, + "x-go-name": "Outputs" + }, + "permitted": { + "type": "boolean", + "x-go-name": "Permitted" + }, + "polling": { + "type": "boolean", + "x-go-name": "Polling" + }, + "sensitive": { + "type": "boolean", + "x-go-name": "Sensitive" + }, + "timeout": { + "type": "integer", + "format": "int64", + "x-go-name": "Timeout" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Comment": { + "type": "object", + "title": "Comment ...", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "category": { + "type": "string", + "x-go-name": "Category" + }, + "content": { + "type": "string", + "x-go-name": "Content" + }, + "created": { + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "entryId": { + "type": "string", + "x-go-name": "EntryID" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "source": { + "type": "string", + "x-go-name": "Source" + }, + "type": { + "$ref": "#/definitions/CommentType" + }, + "user": { + "type": "string", + "x-go-name": "User" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CommentType": { + "type": "string", + "title": "CommentType - comment type: regular comment, time-line, etc...", + "x-go-package": "github.com/demisto/server/domain" + }, + "CommentUpdate": { + "type": "object", + "title": "CommentUpdate ...", + "properties": { + "content": { + "type": "string", + "x-go-name": "Content" + }, + "indicatorId": { + "type": "string", + "x-go-name": "IndicatorID" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "Comments": { + "type": "array", + "title": "Comments ...", + "items": { + "$ref": "#/definitions/Comment" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CommentsFields": { + "type": "object", + "title": "CommentsFields ...", + "properties": { + "comments": { + "$ref": "#/definitions/Comments" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CommonFields": { + "description": "CommonFields holds the common fields to all entities", + "type": "object", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CommonUpdateBatch": { + "type": "object", + "title": "CommonUpdateBatch ...", + "properties": { + "all": { + "type": "boolean", + "x-go-name": "All" + }, + "data": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Data" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "IDs" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "ComplexArg": { + "description": "ComplexArg - all info that is necessary to compute argument value from context\nRoot - the root slice (or object) from to work against\nFilters - a slice of filters to apply to the root object, one after another (e.i. with AND condition between each one)\nAccessor - the key to access to each result after filter\nTransformers - a slice to transformers to apply on the result of the accessed key from each result\ne.g. if user want to take from context all File.DisplayName where File.Extension is 'EXE', and the result in uppercase than:\nRoot: is \"File\"\nFilters: will hold the \"File.DisplayName where File.Extension is 'EXE'\" query\nAccessor: is \"DisplayName\"\nTransformers: will hold the uppercase transformation", + "type": "object", + "properties": { + "accessor": { + "type": "string", + "x-go-name": "Accessor" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/definitions/ArgFilter" + }, + "x-go-name": "Filters" + }, + "root": { + "type": "string", + "x-go-name": "Root" + }, + "transformers": { + "type": "array", + "items": { + "$ref": "#/definitions/ArgTransformer" + }, + "x-go-name": "Transformers" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ConfigDataType": { + "description": "ConfigDataType holds the type of a configuration field or command argument", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "ConfigField": { + "description": "ConfigField holds a configuration field", + "type": "object", + "properties": { + "defaultValue": { + "type": "string", + "x-go-name": "DefaultValue" + }, + "display": { + "type": "string", + "x-go-name": "Display" + }, + "displayPassword": { + "type": "string", + "x-go-name": "DisplayPassword" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "hiddenPassword": { + "type": "boolean", + "x-go-name": "HiddenPassword" + }, + "hiddenUsername": { + "type": "boolean", + "x-go-name": "HiddenUsername" + }, + "info": { + "type": "string", + "x-go-name": "AdditionalInfo" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Options" + }, + "required": { + "type": "boolean", + "x-go-name": "Required" + }, + "type": { + "$ref": "#/definitions/ConfigDataType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ContentItemExportableFields": { + "type": "object", + "title": "ContentItemExportableFields holds ContentItemExportableFields fields.", + "properties": { + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ContentItemFields": { + "description": "ContentItemFields holds ContentItem fields", + "type": "object", + "properties": { + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ContentItemVersionedFields": { + "type": "object", + "title": "ContentItemVersionedFields holds ContentItemVersioned fields.", + "properties": { + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CreateIncidentRequest": { + "description": "CreateIncidentRequest is an extension for Incident entity, with additional field of changed-status for the web client", + "type": "object", + "properties": { + "ShardID": { + "type": "integer", + "format": "int64" + }, + "account": { + "description": "Account holds the tenant name so that slicing and dicing on the master can leverage bleve", + "type": "string", + "x-go-name": "Account" + }, + "activated": { + "description": "When was this activated", + "type": "string", + "format": "date-time", + "x-go-name": "Activated" + }, + "activatingingUserId": { + "description": "The user that activated this investigation", + "type": "string", + "x-go-name": "ActivatingUserID" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "autime": { + "description": "AlmostUniqueTime is an attempt to have a unique sortable ID for an incident", + "type": "integer", + "format": "int64", + "x-go-name": "AlmostUniqueTime" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "canvases": { + "description": "Canvases of the incident", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Canvases" + }, + "category": { + "description": "Category", + "type": "string", + "x-go-name": "Category" + }, + "closeNotes": { + "description": "Notes for closing the incident", + "type": "string", + "x-go-name": "CloseNotes" + }, + "closeReason": { + "description": "The reason for closing the incident (select from existing predefined values)", + "type": "string", + "x-go-name": "ArchiveReason" + }, + "closed": { + "description": "When was this closed", + "type": "string", + "format": "date-time", + "x-go-name": "Closed" + }, + "closingUserId": { + "description": "The user ID that closed this investigation", + "type": "string", + "x-go-name": "ClosingUserID" + }, + "createInvestigation": { + "type": "boolean", + "x-go-name": "CreateInvestigation" + }, + "created": { + "description": "When was this created", + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "dbotCurrentDirtyFields": { + "description": "For mirroring, manage a list of current dirty fields so that we can send delta to outgoing integration", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotCurrentDirtyFields" + }, + "dbotDirtyFields": { + "description": "For mirroring, manage a list of dirty fields to not override them from the source of the incident", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotDirtyFields" + }, + "dbotMirrorDirection": { + "description": "DBotMirrorDirection of how to mirror the incident (in/out/both)", + "type": "string", + "x-go-name": "DBotMirrorDirection" + }, + "dbotMirrorId": { + "description": "DBotMirrorID of a remote system we are syncing with", + "type": "string", + "x-go-name": "DBotMirrorID" + }, + "dbotMirrorInstance": { + "description": "DBotMirrorInstance name of a mirror integration instance", + "type": "string", + "x-go-name": "DBotMirrorInstance" + }, + "dbotMirrorLastSync": { + "description": "The last time we synced this incident even if we did not update anything", + "type": "string", + "format": "date-time", + "x-go-name": "DBotMirrorLastSync" + }, + "dbotMirrorTags": { + "description": "The entry tags I want to sync to remote system", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotMirrorEntryTags" + }, + "details": { + "description": "The details of the incident - reason, etc.", + "type": "string", + "x-go-name": "Details" + }, + "droppedCount": { + "description": "DroppedCount ...", + "type": "integer", + "format": "int64", + "x-go-name": "DroppedCount" + }, + "dueDate": { + "description": "SLA", + "type": "string", + "format": "date-time", + "x-go-name": "DueDate" + }, + "feedBased": { + "description": "If this incident was triggered by a feed job", + "type": "boolean", + "x-go-name": "FeedBased" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "investigationId": { + "description": "Investigation that was opened as a result of the incoming event", + "type": "string", + "x-go-name": "Investigation" + }, + "isDebug": { + "description": "IsDebug ...", + "type": "boolean", + "x-go-name": "IsDebug" + }, + "isPlayground": { + "description": "IsPlayGround", + "type": "boolean", + "x-go-name": "IsPlayGround" + }, + "labels": { + "description": "Labels related to incident - each label is composed of a type and value", + "type": "array", + "items": { + "$ref": "#/definitions/Label" + }, + "x-go-name": "Labels" + }, + "lastJobRunTime": { + "description": "If this incident was triggered by a job, this would be the time the **previous** job started", + "type": "string", + "format": "date-time", + "x-go-name": "LastJobRunTime" + }, + "lastOpen": { + "type": "string", + "format": "date-time", + "x-go-name": "LastOpen" + }, + "linkedCount": { + "description": "LinkedCount ...", + "type": "integer", + "format": "int64", + "x-go-name": "LinkedCount" + }, + "linkedIncidents": { + "description": "LinkedIncidents incidents that were marked as linked by user", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "LinkedIncidents" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "description": "Incident Name - given by user", + "type": "string", + "x-go-name": "Name" + }, + "notifyTime": { + "description": "Incdicates when last this field was changed with a value that supposed to send a notification", + "type": "string", + "format": "date-time", + "x-go-name": "NotifyTime" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "occurred": { + "description": "When this incident has really occurred", + "type": "string", + "format": "date-time", + "x-go-name": "Occurred" + }, + "openDuration": { + "description": "Duration incident was open", + "type": "integer", + "format": "int64", + "x-go-name": "OpenDuration" + }, + "owner": { + "description": "The user who owns this incident", + "type": "string", + "x-go-name": "OwnerID" + }, + "parent": { + "description": "Parent", + "type": "string", + "x-go-name": "Parent" + }, + "phase": { + "description": "Phase", + "type": "string", + "x-go-name": "Phase" + }, + "playbookId": { + "description": "The associated playbook for this incident", + "type": "string", + "x-go-name": "PlaybookID" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "rawCategory": { + "type": "string", + "x-go-name": "RawCategory" + }, + "rawCloseReason": { + "description": "The reason for closing the incident (select from existing predefined values)", + "type": "string", + "x-go-name": "RawArchiveReason" + }, + "rawJSON": { + "type": "string", + "x-go-name": "RawJSONData" + }, + "rawName": { + "description": "Incident RawName", + "type": "string", + "x-go-name": "RawName" + }, + "rawPhase": { + "description": "RawPhase", + "type": "string", + "x-go-name": "RawPhase" + }, + "rawType": { + "description": "Incident raw type", + "type": "string", + "x-go-name": "RawType" + }, + "reason": { + "description": "The reason for the resolve", + "type": "string", + "x-go-name": "Reason" + }, + "reminder": { + "description": "When if at all to send a reminder", + "type": "string", + "format": "date-time", + "x-go-name": "Reminder" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "runStatus": { + "$ref": "#/definitions/RunStatus" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "severity": { + "$ref": "#/definitions/Severity" + }, + "sla": { + "$ref": "#/definitions/SLAState" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourceBrand": { + "description": "SourceBrand ...", + "type": "string", + "x-go-name": "SourceBrand" + }, + "sourceInstance": { + "description": "SourceInstance ...", + "type": "string", + "x-go-name": "SourceInstance" + }, + "status": { + "$ref": "#/definitions/IncidentStatus" + }, + "todoTaskIds": { + "description": "ToDoTaskIDs list of to do task ids", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ToDoTaskIDs" + }, + "type": { + "description": "Incident type", + "type": "string", + "x-go-name": "Type" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CustomFields": { + "description": "The keys should be the field's display name all lower and without spaces. For example: Scan IP -\u003e scanip\nTo get the actual key name you can also go to Cortex XSOAR CLI and run /incident_add and look for the key that you would like to update", + "type": "object", + "title": "CustomFields ...", + "additionalProperties": { + "type": "object" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CustomGroup": { + "description": "CustomGroup - A new custom group that will be created by merging groups based on the Conditions", + "type": "object", + "properties": { + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/Buckets" + }, + "x-go-name": "Conditions" + }, + "name": { + "type": "string", + "x-go-name": "Name" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "CustomGroups": { + "description": "CustomGroups - a custom group for each group-by element", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/CustomGroup" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "DBotScore": { + "description": "DBotScore - Contain the score of a specific brand for a specific insight", + "type": "object", + "properties": { + "content": { + "type": "string", + "x-go-name": "Content" + }, + "contentFormat": { + "type": "string", + "x-go-name": "ContentFormat" + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Context" + }, + "isTypedIndicator": { + "type": "boolean", + "x-go-name": "IsTypedIndicator" + }, + "reliability": { + "type": "string", + "x-go-name": "SourceReliability" + }, + "score": { + "type": "integer", + "format": "int64", + "x-go-name": "Score" + }, + "scoreChangeTimestamp": { + "description": "We need to track when the score changes to know if we need to re-calculate the overall score", + "type": "string", + "format": "date-time", + "x-go-name": "ScoreChangeTimeStamp" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "x-go-name": "TimeStamp" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Dashboard": { + "type": "object", + "title": "Dashboard ...", + "properties": { + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "hidePivot": { + "type": "boolean", + "x-go-name": "HidePivot" + }, + "hideSearch": { + "type": "boolean", + "x-go-name": "HideSearch" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "isCommon": { + "type": "boolean", + "x-go-name": "IsCommon" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "layout": { + "$ref": "#/definitions/WidgetCells" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "modulePage": { + "type": "boolean", + "x-go-name": "ModulePage" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "owner": { + "type": "string", + "x-go-name": "Owner" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "DataCollectionForm": { + "type": "object", + "title": "DataCollectionForm - a data collection form with questions.", + "properties": { + "description": { + "type": "string", + "x-go-name": "Description" + }, + "expired": { + "type": "boolean", + "x-go-name": "Expired" + }, + "questions": { + "type": "array", + "items": { + "$ref": "#/definitions/Question" + }, + "x-go-name": "Questions" + }, + "sender": { + "type": "string", + "x-go-name": "Sender" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "totalAnswers": { + "type": "integer", + "format": "uint64", + "x-go-name": "TotalAnswers" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "DateRange": { + "description": "DateRange provides common fields for date filtering", + "type": "object", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "DateRangeFilter": { + "description": "DateRangeFilter provides common fields for date filtering", + "type": "object", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "DockerImage": { + "description": "DockerImage details", + "type": "object", + "properties": { + "createdAt": { + "type": "string", + "x-go-name": "CreatedAt" + }, + "createdSince": { + "type": "string", + "x-go-name": "CreatedSince" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "repository": { + "type": "string", + "x-go-name": "Repository" + }, + "size": { + "type": "string", + "x-go-name": "Size" + }, + "tag": { + "type": "string", + "x-go-name": "Tag" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "DockerImagesResult": { + "description": "DockerImagesResult for the get images request", + "type": "object", + "properties": { + "images": { + "type": "array", + "items": { + "$ref": "#/definitions/DockerImage" + }, + "x-go-name": "Images" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "DownloadEntry": { + "type": "object", + "title": "DownloadEntry ...", + "properties": { + "id": { + "type": "string", + "x-go-name": "ID" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "Duration": { + "description": "A Duration represents the elapsed time between two instants\nas an int64 nanosecond count. The representation limits the\nlargest representable duration to approximately 290 years.", + "type": "integer", + "format": "int64", + "x-go-package": "time" + }, + "ElasticCommonFields": { + "description": "ElasticCommonFields - common fields used by elastic-search", + "type": "object", + "properties": { + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ElasticVersionFields": { + "description": "ElasticVersionFields - elastic-search version fields", + "type": "object", + "properties": { + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EndingType": { + "description": "EndingType holds the type of schedule Ending", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "EngineInfo": { + "type": "object", + "title": "EngineInfo ...", + "properties": { + "engine": { + "description": "Engine that will run the script", + "type": "string", + "x-go-name": "Engine" + }, + "engineGroup": { + "description": "EngineGroup that will run the script", + "type": "string", + "x-go-name": "EngineGroup" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Entry": { + "description": "Entry holds a single entry in an investigation. Entries entered within a short amount of time by the same user are combined", + "type": "object", + "properties": { + "IndicatorTimeline": { + "$ref": "#/definitions/IndicatorTimeline" + }, + "InstanceID": { + "type": "string" + }, + "Relationships": { + "$ref": "#/definitions/RelationshipsAPI" + }, + "ShardID": { + "type": "integer", + "format": "int64" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "brand": { + "type": "string", + "x-go-name": "Brand" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "category": { + "$ref": "#/definitions/EntryCategory" + }, + "contents": { + "description": "The contents of the entry that is actually indexed - should not be used", + "type": "object", + "x-go-name": "DoNotUseContents" + }, + "contentsSize": { + "description": "ContentsSize the total size of the contents", + "type": "integer", + "format": "int64", + "x-go-name": "ContentsSize" + }, + "created": { + "description": "When it was taken", + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "cron": { + "type": "string", + "x-go-name": "Cron" + }, + "cronView": { + "type": "boolean", + "x-go-name": "CronView" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "deleted": { + "type": "boolean", + "x-go-name": "Deleted" + }, + "deletedBy": { + "type": "string", + "x-go-name": "DeletedBy" + }, + "deletedFromFS": { + "type": "boolean", + "x-go-name": "DeletedFromFS" + }, + "endingDate": { + "type": "string", + "format": "date-time", + "x-go-name": "EndingDate" + }, + "endingType": { + "$ref": "#/definitions/EndingType" + }, + "entryTask": { + "$ref": "#/definitions/EntryTask" + }, + "errorSource": { + "description": "Source of the error", + "type": "string", + "x-go-name": "ErrorSource" + }, + "file": { + "description": "Filename of associated content", + "type": "string", + "x-go-name": "File" + }, + "fileID": { + "description": "FileID is the file name when saved in the server", + "type": "string", + "x-go-name": "FileID" + }, + "fileMetadata": { + "$ref": "#/definitions/FileMetadata" + }, + "format": { + "description": "Holds information on how content is formatted", + "type": "string", + "x-go-name": "ContentsFormat" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "history": { + "description": "Edit history", + "type": "array", + "items": { + "$ref": "#/definitions/EntryHistory" + }, + "x-go-name": "History" + }, + "humanCron": { + "$ref": "#/definitions/HumanCron" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "incidentCreationTime": { + "description": "store the entry based on IncidentCreationTime", + "type": "string", + "format": "date-time", + "x-go-name": "IncidentCreationTime" + }, + "instance": { + "type": "string", + "x-go-name": "Instance" + }, + "investigationId": { + "description": "The id of the investigation it belongs to", + "type": "string", + "x-go-name": "InvestigationID" + }, + "isTodo": { + "description": "IsTodo", + "type": "boolean", + "x-go-name": "IsTodo" + }, + "mirrored": { + "description": "Only used for outbound mirroring to mark that it is already mirrored to remote system", + "type": "boolean", + "x-go-name": "Mirrored" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "note": { + "description": "Note", + "type": "boolean", + "x-go-name": "Note" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "parentContent": { + "description": "ParentEntry content - for reference", + "type": "object", + "x-go-name": "ParentEntryContent" + }, + "parentEntryTruncated": { + "description": "ParentEntryTruncated - indicates weather entry content was truncated", + "type": "boolean", + "x-go-name": "ParentEntryTruncated" + }, + "parentId": { + "description": "ParentId is the ID of the parent entry", + "type": "string", + "x-go-name": "ParentID" + }, + "pinned": { + "description": "Mark entry as pinned = evidence", + "type": "boolean", + "x-go-name": "Pinned" + }, + "playbookId": { + "description": "PlaybookID - if the entry is assigned as note to a playbook task, it will hold the playbook", + "type": "string", + "x-go-name": "PlaybookID" + }, + "polling": { + "description": "Only used for polling entries", + "type": "boolean", + "x-go-name": "Polling" + }, + "pollingArgs": { + "$ref": "#/definitions/ModuleArgs" + }, + "pollingCommand": { + "type": "string", + "x-go-name": "PollingCommand" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "readOnly": { + "description": "ReadOnly", + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "recurrent": { + "type": "boolean", + "x-go-name": "Recurrent" + }, + "reputationSize": { + "description": "ReputationSize the total size of the reputation", + "type": "integer", + "format": "int64", + "x-go-name": "ReputationSize" + }, + "reputations": { + "description": "EntryReputations the reputations calculated by regex match", + "type": "array", + "items": { + "$ref": "#/definitions/EntryReputation" + }, + "x-go-name": "EntryReputations" + }, + "retryTime": { + "description": "When retry took place", + "type": "string", + "format": "date-time", + "x-go-name": "RetryTime" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "scheduled": { + "description": "is it scheduled", + "type": "boolean", + "x-go-name": "Scheduled" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "system": { + "description": "The name of the system associated with this entry", + "type": "string", + "x-go-name": "SystemName" + }, + "tags": { + "description": "Tags", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "tagsRaw": { + "description": "TagsRaw", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "TagsRaw" + }, + "taskId": { + "description": "TaskID - used if the entry is assigned as note to a playbook task", + "type": "string", + "x-go-name": "TaskID" + }, + "times": { + "type": "integer", + "format": "int64", + "x-go-name": "Times" + }, + "timesRan": { + "type": "integer", + "format": "int64", + "x-go-name": "TimesRan" + }, + "timezone": { + "type": "string", + "x-go-name": "Timezone" + }, + "timezoneOffset": { + "type": "integer", + "format": "int64", + "x-go-name": "TimezoneOffset" + }, + "type": { + "$ref": "#/definitions/EntryType" + }, + "user": { + "description": "The user who created the entry", + "type": "string", + "x-go-name": "User" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EntryCategory": { + "type": "string", + "title": "EntryCategory ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "EntryHistory": { + "type": "object", + "title": "EntryHistory ...", + "properties": { + "contentDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ContentDate" + }, + "contents": { + "type": "string", + "x-go-name": "Contents" + }, + "contentsFormat": { + "type": "string", + "x-go-name": "ContentsFormat" + }, + "user": { + "type": "string", + "x-go-name": "User" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EntryReputation": { + "description": "EntryReputation holds the entry reputations and the highlights", + "type": "object", + "properties": { + "highlights": { + "$ref": "#/definitions/FieldTermLocationMap" + }, + "reputationsData": { + "type": "array", + "items": { + "$ref": "#/definitions/ReputationData" + }, + "x-go-name": "ReputationsData" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EntryTask": { + "description": "EntryTask holds information regarding the related task", + "type": "object", + "properties": { + "playbookName": { + "type": "string", + "x-go-name": "PlaybookName" + }, + "quiet": { + "type": "boolean", + "x-go-name": "Quiet" + }, + "taskId": { + "type": "string", + "x-go-name": "TaskID" + }, + "taskName": { + "type": "string", + "x-go-name": "TaskName" + }, + "taskStatus": { + "type": "string", + "x-go-name": "TaskStatus" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EntryType": { + "description": "EntryType specifies the type of the entry", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "Evidence": { + "type": "object", + "title": "Evidence details.", + "properties": { + "ShardID": { + "type": "integer", + "format": "int64" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "description": { + "description": "The description for the resolve", + "type": "string", + "x-go-name": "Description" + }, + "entryId": { + "description": "The entry ID", + "type": "string", + "x-go-name": "EntryID" + }, + "fetched": { + "description": "when the evidence entry was fetched", + "type": "string", + "format": "date-time", + "x-go-name": "Fetched" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "incidentId": { + "description": "The incident ID", + "type": "string", + "x-go-name": "IncidentID" + }, + "markedBy": { + "description": "the user that marked this evidence", + "type": "string", + "x-go-name": "MarkedBy" + }, + "markedDate": { + "description": "when this evidence was marked", + "type": "string", + "format": "date-time", + "x-go-name": "MarkedDate" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "occurred": { + "description": "When this evidence has occurred", + "type": "string", + "format": "date-time", + "x-go-name": "Occurred" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "tags": { + "description": "Tags", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "tagsRaw": { + "description": "TagsRaw", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "TagsRaw" + }, + "taskId": { + "description": "when the evidence entry was fetched", + "type": "string", + "x-go-name": "TaskID" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EvidenceData": { + "description": "EvidenceData - all evidence properties to evaluate in task process", + "type": "object", + "properties": { + "customFields": { + "description": "This field must have empty json key", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "CustomFields" + }, + "description": { + "$ref": "#/definitions/AdvanceArg" + }, + "occurred": { + "$ref": "#/definitions/AdvanceArg" + }, + "tags": { + "$ref": "#/definitions/AdvanceArg" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Evidences": { + "description": "Evidences is a list of evidence entities", + "type": "array", + "items": { + "$ref": "#/definitions/Evidence" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "EvidencesSearchResponse": { + "description": "EvidencesSearchResponse returns the response from the evidences search", + "type": "object", + "properties": { + "evidences": { + "$ref": "#/definitions/Evidences" + }, + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "ExpirationIndicator": { + "type": "object", + "title": "ExpirationIndicator ...", + "properties": { + "deletedFeedFetchTime": { + "type": "string", + "format": "date-time", + "x-go-name": "DeletedFeedFetchTime" + }, + "expiration": { + "type": "string", + "format": "date-time", + "x-go-name": "ExpirationTime" + }, + "expirationSource": { + "$ref": "#/definitions/ExpirationSource" + }, + "expirationStatus": { + "$ref": "#/definitions/ExpirationStatus" + }, + "manualExpirationTime": { + "type": "string", + "format": "date-time", + "x-go-name": "ManualExpirationTime" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ExpirationPolicy": { + "type": "string", + "title": "ExpirationPolicy ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "ExpirationSettingsSource": { + "type": "string", + "title": "ExpirationSettingsSource ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "ExpirationSource": { + "type": "object", + "title": "ExpirationSource ..\t.", + "properties": { + "brand": { + "type": "string", + "x-go-name": "Brand" + }, + "expirationInterval": { + "type": "integer", + "format": "int64", + "x-go-name": "ExpirationInterval" + }, + "expirationPolicy": { + "$ref": "#/definitions/ExpirationPolicy" + }, + "instance": { + "type": "string", + "x-go-name": "Instance" + }, + "moduleId": { + "type": "string", + "x-go-name": "ModuleID" + }, + "setTime": { + "type": "string", + "format": "date-time", + "x-go-name": "SetTime" + }, + "source": { + "$ref": "#/definitions/ExpirationSettingsSource" + }, + "user": { + "type": "string", + "x-go-name": "User" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ExpirationStatus": { + "type": "string", + "title": "ExpirationStatus ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "ExtractSettingsMode": { + "type": "string", + "title": "ExtractSettingsMode ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "FeedIndicator": { + "type": "object", + "title": "FeedIndicator ...", + "properties": { + "ExpirationSource": { + "$ref": "#/definitions/ExpirationSource" + }, + "bypassExclusionList": { + "type": "boolean", + "x-go-name": "ShouldBypassExclusionList" + }, + "classifierId": { + "type": "string", + "x-go-name": "ClassifierID" + }, + "classifierVersion": { + "type": "integer", + "format": "int64", + "x-go-name": "ClassifierVersion" + }, + "comments": { + "type": "array", + "items": { + "$ref": "#/definitions/FeedIndicatorComment" + }, + "x-go-name": "Comments" + }, + "expirationInterval": { + "type": "integer", + "format": "int64", + "x-go-name": "ExpirationInterval" + }, + "expirationPolicy": { + "$ref": "#/definitions/ExpirationPolicy" + }, + "fetchTime": { + "type": "string", + "format": "date-time", + "x-go-name": "FetchTime" + }, + "fields": { + "$ref": "#/definitions/CustomFields" + }, + "isEnrichment": { + "type": "boolean", + "x-go-name": "IsEnrichment" + }, + "mapperId": { + "type": "string", + "x-go-name": "MapperID" + }, + "mapperVersion": { + "type": "integer", + "format": "int64", + "x-go-name": "MapperVersion" + }, + "modifiedTime": { + "type": "string", + "format": "date-time", + "x-go-name": "ModifiedTime" + }, + "moduleId": { + "type": "string", + "x-go-name": "ModuleID" + }, + "rawJSON": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "RawJSON" + }, + "relationships": { + "$ref": "#/definitions/RelationshipsAPI" + }, + "reliability": { + "$ref": "#/definitions/Reliability" + }, + "score": { + "type": "integer", + "format": "int64", + "x-go-name": "Score" + }, + "sourceBrand": { + "type": "string", + "x-go-name": "Brand" + }, + "sourceInstance": { + "type": "string", + "x-go-name": "Instance" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "x-go-name": "TimeStamp" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FeedIndicatorComment": { + "type": "object", + "title": "FeedIndicatorComment ...", + "properties": { + "content": { + "type": "string", + "x-go-name": "Content" + }, + "created": { + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "user": { + "type": "string", + "x-go-name": "User" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FeedIndicatorCommentsFields": { + "type": "object", + "title": "FeedIndicatorCommentsFields ...", + "properties": { + "comments": { + "type": "array", + "items": { + "$ref": "#/definitions/FeedIndicatorComment" + }, + "x-go-name": "Comments" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FeedIndicators": { + "type": "array", + "title": "FeedIndicators ...", + "items": { + "$ref": "#/definitions/FeedIndicator" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FeedIndicatorsRequest": { + "description": "FeedIndicatorsRequest is the input for JSON feed indicator ingestion", + "type": "object", + "properties": { + "bypassExclusionList": { + "type": "boolean", + "x-go-name": "ShouldBypassExclusionList" + }, + "classifierId": { + "type": "string", + "x-go-name": "ClassifierID" + }, + "indicators": { + "type": "array", + "items": { + "$ref": "#/definitions/RawFeedIndicator" + }, + "x-go-name": "Indicators" + }, + "mapperId": { + "type": "string", + "x-go-name": "MapperID" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "FeedMetadata": { + "type": "object", + "title": "FeedMetadata ...", + "properties": { + "bypassExclusionList": { + "type": "boolean", + "x-go-name": "ShouldBypassExclusionList" + }, + "classifierId": { + "type": "string", + "x-go-name": "ClassifierID" + }, + "classifierVersion": { + "type": "integer", + "format": "int64", + "x-go-name": "ClassifierVersion" + }, + "expirationInterval": { + "type": "integer", + "format": "int64", + "x-go-name": "ExpirationInterval" + }, + "expirationPolicy": { + "$ref": "#/definitions/ExpirationPolicy" + }, + "fetchTime": { + "type": "string", + "format": "date-time", + "x-go-name": "FetchTime" + }, + "mapperId": { + "type": "string", + "x-go-name": "MapperID" + }, + "mapperVersion": { + "type": "integer", + "format": "int64", + "x-go-name": "MapperVersion" + }, + "moduleId": { + "type": "string", + "x-go-name": "ModuleID" + }, + "reliability": { + "$ref": "#/definitions/Reliability" + }, + "score": { + "type": "integer", + "format": "int64", + "x-go-name": "Score" + }, + "sourceBrand": { + "type": "string", + "x-go-name": "Brand" + }, + "sourceInstance": { + "type": "string", + "x-go-name": "Instance" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FieldExtractSetting": { + "type": "object", + "title": "FieldExtractSetting ...", + "properties": { + "extractAsIsIndicatorTypeId": { + "type": "string", + "x-go-name": "ExtractAsIsIndicatorTypeID" + }, + "extractIndicatorTypesIDs": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ExtractIndicatorTypesIDs" + }, + "isExtractingAllIndicatorTypes": { + "type": "boolean", + "x-go-name": "IsExtractingAllIndicatorTypes" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FieldGroup": { + "description": "FieldGroup is the field group", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "FieldMapping": { + "description": "FieldMapping - Map a task output (complex or simple value) to an incident field", + "type": "object", + "properties": { + "fieldId": { + "type": "string", + "x-go-name": "IncidentField" + }, + "output": { + "$ref": "#/definitions/AdvanceArg" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FieldMergeStrategy": { + "description": "FieldMergeStrategy strategy for merging of indicator fields", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "FieldTermLocationMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/TermLocationMap" + }, + "x-go-package": "github.com/blevesearch/bleve/v2/search" + }, + "FieldsAlias": { + "type": "object", + "title": "FieldsAlias ...", + "properties": { + "cliName": { + "type": "string", + "x-go-name": "CliName" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FileMetadata": { + "type": "object", + "title": "FileMetadata ...", + "properties": { + "info": { + "type": "string", + "x-go-name": "Info" + }, + "isMediaFile": { + "type": "boolean", + "x-go-name": "IsMediaFile" + }, + "md5": { + "type": "string", + "x-go-name": "MD5" + }, + "sha1": { + "type": "string", + "x-go-name": "SHA1" + }, + "sha256": { + "type": "string", + "x-go-name": "SHA256" + }, + "sha512": { + "type": "string", + "x-go-name": "SHA512" + }, + "size": { + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "ssdeep": { + "type": "string", + "x-go-name": "SSDeep" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FilterOperatorID": { + "type": "string", + "title": "FilterOperatorID ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "FormDisplay": { + "type": "object", + "title": "FormDisplay - display options for communication/ask task (for both email and web forms).", + "properties": { + "bodyBackgroundColor": { + "type": "string", + "x-go-name": "BodyBackgroundColor" + }, + "bodyFontColor": { + "type": "string", + "x-go-name": "BodyFontColor" + }, + "headerBackgroundColor": { + "type": "string", + "x-go-name": "HeaderBackgroundColor" + }, + "headerFontColor": { + "type": "string", + "x-go-name": "HeaderFontColor" + }, + "isExternalRtl": { + "type": "boolean", + "x-go-name": "IsExternalRtl" + }, + "sender": { + "type": "string", + "x-go-name": "Sender" + }, + "submitButtonBackgroundColor": { + "type": "string", + "x-go-name": "SubmitButtonBackgroundColor" + }, + "submitButtonFontColor": { + "type": "string", + "x-go-name": "SubmitButtonFontColor" + }, + "submitText": { + "type": "string", + "x-go-name": "SubmitText" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "FullVersion": { + "description": "FullVersion - both Elasticsearch version and bolt version", + "type": "object", + "properties": { + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "GenericObjectDefinition": { + "type": "object", + "title": "GenericObjectDefinition ...", + "properties": { + "auditable": { + "type": "boolean", + "x-go-name": "Auditable" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "partitioned": { + "type": "boolean", + "x-go-name": "Partitioned" + }, + "pluralName": { + "type": "string", + "x-go-name": "PluralName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "rbacSupport": { + "type": "boolean", + "x-go-name": "RBACSupport" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "GenericObjectType": { + "description": "GenericObjectType represent generic definition type, such as Definition:Asset -\u003e Type:Laptop", + "type": "object", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "color": { + "type": "string", + "x-go-name": "Color" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "detached": { + "type": "boolean", + "x-go-name": "Detached" + }, + "disabled": { + "type": "boolean", + "x-go-name": "Disabled" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "layout": { + "type": "string", + "x-go-name": "Layout" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "GenericStringDateFilter": { + "description": "GenericStringDateFilter is a general filter that will fetch entities using the Query value and a date filter", + "type": "object", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Fields" + }, + "filterobjectquery": { + "type": "string", + "x-go-name": "FilterObjectQuery" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "trim_events": { + "type": "integer", + "format": "int64", + "x-go-name": "TrimEvents" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "GenericStringFilter": { + "description": "GenericStringFilter is a general filter that will fetch entities using the Query value", + "type": "object", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "GridColumn": { + "type": "object", + "title": "GridColumn ...", + "properties": { + "displayName": { + "type": "string", + "x-go-name": "DisplayName" + }, + "fieldCalcScript": { + "type": "string", + "x-go-name": "FieldCalcScript" + }, + "isDefault": { + "type": "boolean", + "x-go-name": "IsDefault" + }, + "isReadOnly": { + "type": "boolean", + "x-go-name": "IsReadOnly" + }, + "key": { + "type": "string", + "x-go-name": "Key" + }, + "required": { + "type": "boolean", + "x-go-name": "Required" + }, + "script": { + "type": "string", + "x-go-name": "Script" + }, + "selectValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SelectValues" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "width": { + "type": "integer", + "format": "int64", + "x-go-name": "Width" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Group": { + "type": "object", + "title": "Group is the response that returns from a statistics query, describing a grouped value.", + "properties": { + "color": { + "description": "color used to identify the group", + "type": "string", + "x-go-name": "Color" + }, + "count": { + "description": "The number of participants in the group", + "type": "integer", + "format": "int64", + "x-go-name": "Count" + }, + "data": { + "description": "The data value provided in array of integer values.", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "Data" + }, + "dataType": { + "type": "string", + "x-go-name": "GoToDataType" + }, + "floatData": { + "description": "The data value provided in array of float values.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "x-go-name": "FloatData" + }, + "groups": { + "$ref": "#/definitions/Groups" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "pivot": { + "type": "string", + "x-go-name": "Pivot" + }, + "query": { + "type": "string", + "x-go-name": "GoToQuery" + }, + "x": { + "type": "number", + "format": "double", + "x-go-name": "X" + }, + "y": { + "type": "number", + "format": "double", + "x-go-name": "Y" + }, + "z": { + "type": "number", + "format": "double", + "x-go-name": "Z" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "Groups": { + "description": "Groups is a list of group entities", + "type": "array", + "items": { + "$ref": "#/definitions/Group" + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "HumanCron": { + "type": "object", + "title": "HumanCron ...", + "properties": { + "atTimeHour": { + "type": "string", + "x-go-name": "AtTimeHour" + }, + "atTimeMinute": { + "type": "string", + "x-go-name": "AtTimeMinute" + }, + "days": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Days" + }, + "schedulingType": { + "description": "the following fields are deprecated. do not use them.", + "type": "string", + "x-go-name": "SchedulingType" + }, + "timePeriod": { + "type": "integer", + "format": "int64", + "x-go-name": "TimePeriod" + }, + "timePeriodType": { + "type": "string", + "x-go-name": "TimePeriodType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Important": { + "description": "Important The important outputs of a given command", + "type": "object", + "properties": { + "contextPath": { + "type": "string", + "x-go-name": "ContextPath" + }, + "description": { + "description": "Description is either a string or a map from string to interface", + "type": "string", + "x-go-name": "Description" + }, + "related": { + "description": "To what other context path this output is related", + "type": "string", + "x-go-name": "Related" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Incident": { + "description": "An incident can be manually opened algorithmically or arrive from an external source like SIEM.\nNote: CustomFields (an optional generic object type) is missing from swagger properties definition.", + "type": "object", + "title": "Incident details.", + "properties": { + "ShardID": { + "type": "integer", + "format": "int64" + }, + "account": { + "description": "Account holds the tenant name so that slicing and dicing on the master can leverage bleve", + "type": "string", + "x-go-name": "Account" + }, + "activated": { + "description": "When was this activated", + "type": "string", + "format": "date-time", + "x-go-name": "Activated" + }, + "activatingingUserId": { + "description": "The user that activated this investigation", + "type": "string", + "x-go-name": "ActivatingUserID" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "attachment": { + "description": "Attachments", + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + }, + "x-go-name": "Attachments" + }, + "autime": { + "description": "AlmostUniqueTime is an attempt to have a unique sortable ID for an incident", + "type": "integer", + "format": "int64", + "x-go-name": "AlmostUniqueTime" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "canvases": { + "description": "Canvases of the incident", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Canvases" + }, + "category": { + "description": "Category", + "type": "string", + "x-go-name": "Category" + }, + "closeNotes": { + "description": "Notes for closing the incident", + "type": "string", + "x-go-name": "CloseNotes" + }, + "closeReason": { + "description": "The reason for closing the incident (select from existing predefined values)", + "type": "string", + "x-go-name": "ArchiveReason" + }, + "closed": { + "description": "When was this closed", + "type": "string", + "format": "date-time", + "x-go-name": "Closed" + }, + "closingUserId": { + "description": "The user ID that closed this investigation", + "type": "string", + "x-go-name": "ClosingUserID" + }, + "created": { + "description": "When was this created", + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "dbotCurrentDirtyFields": { + "description": "For mirroring, manage a list of current dirty fields so that we can send delta to outgoing integration", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotCurrentDirtyFields" + }, + "dbotDirtyFields": { + "description": "For mirroring, manage a list of dirty fields to not override them from the source of the incident", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotDirtyFields" + }, + "dbotMirrorDirection": { + "description": "DBotMirrorDirection of how to mirror the incident (in/out/both)", + "type": "string", + "x-go-name": "DBotMirrorDirection" + }, + "dbotMirrorId": { + "description": "DBotMirrorID of a remote system we are syncing with", + "type": "string", + "x-go-name": "DBotMirrorID" + }, + "dbotMirrorInstance": { + "description": "DBotMirrorInstance name of a mirror integration instance", + "type": "string", + "x-go-name": "DBotMirrorInstance" + }, + "dbotMirrorLastSync": { + "description": "The last time we synced this incident even if we did not update anything", + "type": "string", + "format": "date-time", + "x-go-name": "DBotMirrorLastSync" + }, + "dbotMirrorTags": { + "description": "The entry tags I want to sync to remote system", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotMirrorEntryTags" + }, + "details": { + "description": "The details of the incident - reason, etc.", + "type": "string", + "x-go-name": "Details" + }, + "droppedCount": { + "description": "DroppedCount ...", + "type": "integer", + "format": "int64", + "x-go-name": "DroppedCount" + }, + "dueDate": { + "description": "SLA", + "type": "string", + "format": "date-time", + "x-go-name": "DueDate" + }, + "feedBased": { + "description": "If this incident was triggered by a feed job", + "type": "boolean", + "x-go-name": "FeedBased" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "investigationId": { + "description": "Investigation that was opened as a result of the incoming event", + "type": "string", + "x-go-name": "Investigation" + }, + "isDebug": { + "description": "IsDebug ...", + "type": "boolean", + "x-go-name": "IsDebug" + }, + "isPlayground": { + "description": "IsPlayGround", + "type": "boolean", + "x-go-name": "IsPlayGround" + }, + "labels": { + "description": "Labels related to incident - each label is composed of a type and value", + "type": "array", + "items": { + "$ref": "#/definitions/Label" + }, + "x-go-name": "Labels" + }, + "lastJobRunTime": { + "description": "If this incident was triggered by a job, this would be the time the **previous** job started", + "type": "string", + "format": "date-time", + "x-go-name": "LastJobRunTime" + }, + "lastOpen": { + "type": "string", + "format": "date-time", + "x-go-name": "LastOpen" + }, + "linkedCount": { + "description": "LinkedCount ...", + "type": "integer", + "format": "int64", + "x-go-name": "LinkedCount" + }, + "linkedIncidents": { + "description": "LinkedIncidents incidents that were marked as linked by user", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "LinkedIncidents" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "description": "Incident Name - given by user", + "type": "string", + "x-go-name": "Name" + }, + "notifyTime": { + "description": "Incdicates when last this field was changed with a value that supposed to send a notification", + "type": "string", + "format": "date-time", + "x-go-name": "NotifyTime" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "occurred": { + "description": "When this incident has really occurred", + "type": "string", + "format": "date-time", + "x-go-name": "Occurred" + }, + "openDuration": { + "description": "Duration incident was open", + "type": "integer", + "format": "int64", + "x-go-name": "OpenDuration" + }, + "owner": { + "description": "The user who owns this incident", + "type": "string", + "x-go-name": "OwnerID" + }, + "parent": { + "description": "Parent", + "type": "string", + "x-go-name": "Parent" + }, + "phase": { + "description": "Phase", + "type": "string", + "x-go-name": "Phase" + }, + "playbookId": { + "description": "The associated playbook for this incident", + "type": "string", + "x-go-name": "PlaybookID" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "rawCategory": { + "type": "string", + "x-go-name": "RawCategory" + }, + "rawCloseReason": { + "description": "The reason for closing the incident (select from existing predefined values)", + "type": "string", + "x-go-name": "RawArchiveReason" + }, + "rawJSON": { + "type": "string", + "x-go-name": "RawJSONData" + }, + "rawName": { + "description": "Incident RawName", + "type": "string", + "x-go-name": "RawName" + }, + "rawPhase": { + "description": "RawPhase", + "type": "string", + "x-go-name": "RawPhase" + }, + "rawType": { + "description": "Incident raw type", + "type": "string", + "x-go-name": "RawType" + }, + "reason": { + "description": "The reason for the resolve", + "type": "string", + "x-go-name": "Reason" + }, + "reminder": { + "description": "When if at all to send a reminder", + "type": "string", + "format": "date-time", + "x-go-name": "Reminder" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "runStatus": { + "$ref": "#/definitions/RunStatus" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "severity": { + "$ref": "#/definitions/Severity" + }, + "sla": { + "$ref": "#/definitions/SLAState" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourceBrand": { + "description": "SourceBrand ...", + "type": "string", + "x-go-name": "SourceBrand" + }, + "sourceInstance": { + "description": "SourceInstance ...", + "type": "string", + "x-go-name": "SourceInstance" + }, + "status": { + "$ref": "#/definitions/IncidentStatus" + }, + "todoTaskIds": { + "description": "ToDoTaskIDs list of to do task ids", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ToDoTaskIDs" + }, + "type": { + "description": "Incident type", + "type": "string", + "x-go-name": "Type" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IncidentField": { + "type": "object", + "title": "IncidentField ...", + "properties": { + "aliasTo": { + "type": "string", + "x-go-name": "AliasTo" + }, + "aliases": { + "type": "array", + "items": { + "$ref": "#/definitions/FieldsAlias" + }, + "x-go-name": "Aliases" + }, + "associatedToAll": { + "type": "boolean", + "x-go-name": "AssociatedToAll" + }, + "associatedTypes": { + "description": "AssociatedTypes - list of incident (case) types IDs related to specific incident field", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AssociatedTypes" + }, + "autoCompleteTags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AutoCompleteTags" + }, + "breachScript": { + "type": "string", + "x-go-name": "BreachScript" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "caseInsensitive": { + "type": "boolean", + "x-go-name": "CaseInsensitive" + }, + "cliName": { + "type": "string", + "x-go-name": "CliName" + }, + "closeForm": { + "type": "boolean", + "x-go-name": "CloseForm" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/definitions/GridColumn" + }, + "x-go-name": "GridColumns" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "content": { + "type": "boolean", + "x-go-name": "Content" + }, + "defaultRows": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "x-go-name": "DefaultRows" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "editForm": { + "type": "boolean", + "x-go-name": "EditForm" + }, + "fieldCalcScript": { + "type": "string", + "x-go-name": "FieldCalcScript" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "group": { + "$ref": "#/definitions/FieldGroup" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "isReadOnly": { + "type": "boolean", + "x-go-name": "IsReadOnly" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "mergeStrategy": { + "$ref": "#/definitions/FieldMergeStrategy" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "neverSetAsRequired": { + "type": "boolean", + "x-go-name": "NeverSetAsRequired" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "openEnded": { + "type": "boolean", + "x-go-name": "OpenEnded" + }, + "ownerOnly": { + "type": "boolean", + "x-go-name": "OwnerOnly" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "placeholder": { + "type": "string", + "x-go-name": "Placeholder" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "required": { + "type": "boolean", + "x-go-name": "Required" + }, + "runScriptAfterUpdate": { + "type": "boolean", + "x-go-name": "RunScriptAfterIncUpdate" + }, + "script": { + "type": "string", + "x-go-name": "Script" + }, + "selectValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SelectValues" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sla": { + "type": "integer", + "format": "int64", + "x-go-name": "SLA" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "systemAssociatedTypes": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SystemAssociatedTypes" + }, + "template": { + "type": "string", + "x-go-name": "Template" + }, + "threshold": { + "type": "number", + "format": "double", + "x-go-name": "Threshold" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "unmapped": { + "type": "boolean", + "x-go-name": "Unmapped" + }, + "unsearchable": { + "type": "boolean", + "x-go-name": "UnSearchable" + }, + "useAsKpi": { + "type": "boolean", + "x-go-name": "UseAsKpi" + }, + "validatedError": { + "type": "string", + "x-go-name": "ValidatedError" + }, + "validationRegex": { + "type": "string", + "x-go-name": "ValidationRegex" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "x2_fields": { + "type": "string", + "x-go-name": "XSIAMFields" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IncidentFilter": { + "type": "object", + "title": "IncidentFilter allows for very simple filtering.", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "andOp": { + "type": "boolean", + "x-go-name": "AndOp" + }, + "category": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Category" + }, + "details": { + "type": "string", + "x-go-name": "Details" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Fields" + }, + "files": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Files" + }, + "filterobjectquery": { + "type": "string", + "x-go-name": "FilterObjectQuery" + }, + "fromActivatedDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromActivatedDate" + }, + "fromClosedDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromClosedDate" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "fromDueDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDueDate" + }, + "fromReminder": { + "type": "string", + "format": "date-time", + "x-go-name": "FromReminder" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ID" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "includeTmp": { + "type": "boolean", + "x-go-name": "IncludeTmp" + }, + "investigation": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Investigation" + }, + "level": { + "type": "array", + "items": { + "$ref": "#/definitions/Severity" + }, + "x-go-name": "Level" + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Name" + }, + "notCategory": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "NotCategory" + }, + "notInvestigation": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "NotInvestigation" + }, + "notStatus": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentStatus" + }, + "x-go-name": "NotStatus" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "parent": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Parent" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "reason": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Reason" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "status": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentStatus" + }, + "x-go-name": "Status" + }, + "systems": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Systems" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toActivatedDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToActivatedDate" + }, + "toClosedDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToClosedDate" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "toDueDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDueDate" + }, + "toReminder": { + "type": "string", + "format": "date-time", + "x-go-name": "ToReminder" + }, + "totalOnly": { + "type": "boolean", + "x-go-name": "TotalOnly" + }, + "trim_events": { + "type": "integer", + "format": "int64", + "x-go-name": "TrimEvents" + }, + "type": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Type" + }, + "urls": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Urls" + }, + "users": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Users" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "IncidentSearchResponseWrapper": { + "description": "IncidentSearchResponseWrapper is an extension for the IncidentSearchResponse type, which holds list of IncidentWrapper(s)", + "type": "object", + "properties": { + "accountErrors": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AccountErrors" + }, + "data": { + "description": "in: body", + "type": "array", + "items": { + "$ref": "#/definitions/IncidentWrapper" + }, + "x-go-name": "Data" + }, + "notUpdated": { + "type": "integer", + "format": "uint64", + "x-go-name": "NotUpdated" + }, + "searchAfter": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchBefore": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + }, + "totalAccounts": { + "type": "integer", + "format": "int64", + "x-go-name": "TotalAccounts" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IncidentStatus": { + "description": "IncidentStatus is the status of the incident", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "IncidentType": { + "type": "object", + "title": "IncidentType ...", + "properties": { + "autorun": { + "type": "boolean", + "x-go-name": "IsAutoRun" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "closureScript": { + "type": "string", + "x-go-name": "ClosureScript" + }, + "color": { + "type": "string", + "x-go-name": "Color" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "days": { + "type": "integer", + "format": "int64", + "x-go-name": "Days" + }, + "daysR": { + "type": "integer", + "format": "int64", + "x-go-name": "DaysReminder" + }, + "default": { + "type": "boolean", + "x-go-name": "IsDefaultType" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "detached": { + "type": "boolean", + "x-go-name": "Detached" + }, + "disabled": { + "type": "boolean", + "x-go-name": "Disabled" + }, + "extractSettings": { + "$ref": "#/definitions/IncidentTypeExtractSettings" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "hours": { + "type": "integer", + "format": "int64", + "x-go-name": "Hours" + }, + "hoursR": { + "type": "integer", + "format": "int64", + "x-go-name": "HoursReminder" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "layout": { + "type": "string", + "x-go-name": "Layout" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "onChangeRepAlg": { + "$ref": "#/definitions/ReputationCalcAlg" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "playbookId": { + "type": "string", + "x-go-name": "PlaybookID" + }, + "preProcessingScript": { + "type": "string", + "x-go-name": "PreProcessingScript" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "readonly": { + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "reputationCalc": { + "$ref": "#/definitions/ReputationCalcAlg" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sla": { + "type": "integer", + "format": "int64", + "x-go-name": "SLA" + }, + "slaReminder": { + "type": "integer", + "format": "int64", + "x-go-name": "SLAReminder" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "weeks": { + "type": "integer", + "format": "int64", + "x-go-name": "Weeks" + }, + "weeksR": { + "type": "integer", + "format": "int64", + "x-go-name": "WeeksReminder" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IncidentTypeExtractSettings": { + "type": "object", + "title": "IncidentTypeExtractSettings ...", + "properties": { + "fieldCliNameToExtractSettings": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/FieldExtractSetting" + }, + "x-go-name": "FieldCliNameToExtractSettings" + }, + "mode": { + "$ref": "#/definitions/ExtractSettingsMode" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IncidentWrapper": { + "description": "IncidentWrapper is an extension of the Incident entity, which includes an additional field of changed-status for the web client", + "type": "object", + "properties": { + "ShardID": { + "type": "integer", + "format": "int64" + }, + "account": { + "description": "Account holds the tenant name so that slicing and dicing on the master can leverage bleve", + "type": "string", + "x-go-name": "Account" + }, + "activated": { + "description": "When was this activated", + "type": "string", + "format": "date-time", + "x-go-name": "Activated" + }, + "activatingingUserId": { + "description": "The user that activated this investigation", + "type": "string", + "x-go-name": "ActivatingUserID" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "attachment": { + "description": "Attachments", + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + }, + "x-go-name": "Attachments" + }, + "autime": { + "description": "AlmostUniqueTime is an attempt to have a unique sortable ID for an incident", + "type": "integer", + "format": "int64", + "x-go-name": "AlmostUniqueTime" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "canvases": { + "description": "Canvases of the incident", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Canvases" + }, + "category": { + "description": "Category", + "type": "string", + "x-go-name": "Category" + }, + "changeStatus": { + "type": "string", + "x-go-name": "ChangeStatus" + }, + "closeNotes": { + "description": "Notes for closing the incident", + "type": "string", + "x-go-name": "CloseNotes" + }, + "closeReason": { + "description": "The reason for closing the incident (select from existing predefined values)", + "type": "string", + "x-go-name": "ArchiveReason" + }, + "closed": { + "description": "When was this closed", + "type": "string", + "format": "date-time", + "x-go-name": "Closed" + }, + "closingUserId": { + "description": "The user ID that closed this investigation", + "type": "string", + "x-go-name": "ClosingUserID" + }, + "created": { + "description": "When was this created", + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "dbotCurrentDirtyFields": { + "description": "For mirroring, manage a list of current dirty fields so that we can send delta to outgoing integration", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotCurrentDirtyFields" + }, + "dbotDirtyFields": { + "description": "For mirroring, manage a list of dirty fields to not override them from the source of the incident", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotDirtyFields" + }, + "dbotMirrorDirection": { + "description": "DBotMirrorDirection of how to mirror the incident (in/out/both)", + "type": "string", + "x-go-name": "DBotMirrorDirection" + }, + "dbotMirrorId": { + "description": "DBotMirrorID of a remote system we are syncing with", + "type": "string", + "x-go-name": "DBotMirrorID" + }, + "dbotMirrorInstance": { + "description": "DBotMirrorInstance name of a mirror integration instance", + "type": "string", + "x-go-name": "DBotMirrorInstance" + }, + "dbotMirrorLastSync": { + "description": "The last time we synced this incident even if we did not update anything", + "type": "string", + "format": "date-time", + "x-go-name": "DBotMirrorLastSync" + }, + "dbotMirrorTags": { + "description": "The entry tags I want to sync to remote system", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "DBotMirrorEntryTags" + }, + "details": { + "description": "The details of the incident - reason, etc.", + "type": "string", + "x-go-name": "Details" + }, + "droppedCount": { + "description": "DroppedCount ...", + "type": "integer", + "format": "int64", + "x-go-name": "DroppedCount" + }, + "dueDate": { + "description": "SLA", + "type": "string", + "format": "date-time", + "x-go-name": "DueDate" + }, + "feedBased": { + "description": "If this incident was triggered by a feed job", + "type": "boolean", + "x-go-name": "FeedBased" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "insights": { + "type": "integer", + "format": "uint64", + "x-go-name": "Insights" + }, + "investigationId": { + "description": "Investigation that was opened as a result of the incoming event", + "type": "string", + "x-go-name": "Investigation" + }, + "isDebug": { + "description": "IsDebug ...", + "type": "boolean", + "x-go-name": "IsDebug" + }, + "isPlayground": { + "description": "IsPlayGround", + "type": "boolean", + "x-go-name": "IsPlayGround" + }, + "labels": { + "description": "Labels related to incident - each label is composed of a type and value", + "type": "array", + "items": { + "$ref": "#/definitions/Label" + }, + "x-go-name": "Labels" + }, + "lastJobRunTime": { + "description": "If this incident was triggered by a job, this would be the time the **previous** job started", + "type": "string", + "format": "date-time", + "x-go-name": "LastJobRunTime" + }, + "lastOpen": { + "type": "string", + "format": "date-time", + "x-go-name": "LastOpen" + }, + "linkedCount": { + "description": "LinkedCount ...", + "type": "integer", + "format": "int64", + "x-go-name": "LinkedCount" + }, + "linkedIncidents": { + "description": "LinkedIncidents incidents that were marked as linked by user", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "LinkedIncidents" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "description": "Incident Name - given by user", + "type": "string", + "x-go-name": "Name" + }, + "notifyTime": { + "description": "Incdicates when last this field was changed with a value that supposed to send a notification", + "type": "string", + "format": "date-time", + "x-go-name": "NotifyTime" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "occurred": { + "description": "When this incident has really occurred", + "type": "string", + "format": "date-time", + "x-go-name": "Occurred" + }, + "openDuration": { + "description": "Duration incident was open", + "type": "integer", + "format": "int64", + "x-go-name": "OpenDuration" + }, + "owner": { + "description": "The user who owns this incident", + "type": "string", + "x-go-name": "OwnerID" + }, + "parent": { + "description": "Parent", + "type": "string", + "x-go-name": "Parent" + }, + "phase": { + "description": "Phase", + "type": "string", + "x-go-name": "Phase" + }, + "playbookId": { + "description": "The associated playbook for this incident", + "type": "string", + "x-go-name": "PlaybookID" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "rawCategory": { + "type": "string", + "x-go-name": "RawCategory" + }, + "rawCloseReason": { + "description": "The reason for closing the incident (select from existing predefined values)", + "type": "string", + "x-go-name": "RawArchiveReason" + }, + "rawJSON": { + "type": "string", + "x-go-name": "RawJSONData" + }, + "rawName": { + "description": "Incident RawName", + "type": "string", + "x-go-name": "RawName" + }, + "rawPhase": { + "description": "RawPhase", + "type": "string", + "x-go-name": "RawPhase" + }, + "rawType": { + "description": "Incident raw type", + "type": "string", + "x-go-name": "RawType" + }, + "reason": { + "description": "The reason for the resolve", + "type": "string", + "x-go-name": "Reason" + }, + "reminder": { + "description": "When if at all to send a reminder", + "type": "string", + "format": "date-time", + "x-go-name": "Reminder" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "runStatus": { + "$ref": "#/definitions/RunStatus" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "severity": { + "$ref": "#/definitions/Severity" + }, + "sla": { + "$ref": "#/definitions/SLAState" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourceBrand": { + "description": "SourceBrand ...", + "type": "string", + "x-go-name": "SourceBrand" + }, + "sourceInstance": { + "description": "SourceInstance ...", + "type": "string", + "x-go-name": "SourceInstance" + }, + "status": { + "$ref": "#/definitions/IncidentStatus" + }, + "todoTaskIds": { + "description": "ToDoTaskIDs list of to do task ids", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ToDoTaskIDs" + }, + "type": { + "description": "Incident type", + "type": "string", + "x-go-name": "Type" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Incidents": { + "description": "Incidents is a list of incident entities" + }, + "IndicatorEditBulkResponse": { + "type": "object", + "title": "IndicatorEditBulkResponse ...", + "properties": { + "total": { + "type": "integer", + "format": "uint64", + "x-go-name": "Total" + }, + "updated": { + "type": "integer", + "format": "uint64", + "x-go-name": "Updated" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "IndicatorFilter": { + "description": "IndicatorFilter is a general filter that fetches entities using a query string query using the Query value", + "type": "object", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "earlyTimeInPage": { + "type": "string", + "format": "date-time", + "x-go-name": "EarlyTimeInPage" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Fields" + }, + "filterobjectquery": { + "type": "string", + "x-go-name": "FilterObjectQuery" + }, + "firstSeen": { + "$ref": "#/definitions/DateRangeFilter" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "lastSeen": { + "$ref": "#/definitions/DateRangeFilter" + }, + "laterTimeInPage": { + "type": "string", + "format": "date-time", + "x-go-name": "LaterTimeInPage" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "prevPage": { + "description": "MT support - these fields are for indicator search according to calculatedTime", + "type": "boolean", + "x-go-name": "PrevPage" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "trim_events": { + "type": "integer", + "format": "int64", + "x-go-name": "TrimEvents" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "IndicatorResult": { + "type": "object", + "title": "IndicatorResult ...", + "properties": { + "accountErrors": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AccountErrors" + }, + "iocObjects": { + "$ref": "#/definitions/IocObjects" + }, + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + }, + "totalAccounts": { + "type": "integer", + "format": "int64", + "x-go-name": "TotalAccounts" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "IndicatorTimeline": { + "type": "array", + "title": "IndicatorTimeline ...", + "items": { + "$ref": "#/definitions/IndicatorTimelineFromEntry" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IndicatorTimelineFromEntry": { + "type": "object", + "title": "IndicatorTimelineFromEntry ...", + "properties": { + "Category": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "Time": { + "type": "string", + "format": "date-time" + }, + "User": { + "type": "string" + }, + "Value": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Info": { + "description": "Info - holds all workers status", + "type": "object", + "properties": { + "Available": { + "type": "number", + "format": "double" + }, + "BufferSpace": { + "type": "integer", + "format": "int64" + }, + "Busy": { + "type": "integer", + "format": "int64" + }, + "HighPriorityAvailable": { + "type": "number", + "format": "double" + }, + "HighPriorityBufferSpace": { + "type": "integer", + "format": "int64" + }, + "Name": { + "type": "string" + }, + "ProcessInfo": { + "type": "array", + "items": { + "$ref": "#/definitions/ProcessInfo" + } + }, + "ShouldStop": { + "type": "boolean" + }, + "Total": { + "type": "integer", + "format": "int64" + }, + "TotalBuffer": { + "type": "integer", + "format": "int64" + } + }, + "x-go-package": "github.com/demisto/server/util/workers/workersInfo" + }, + "InsightCache": { + "description": "InsightCache - map insight name to all its metadata, name will be case insensitive", + "type": "object", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "scores": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DBotScore" + }, + "x-go-name": "Scores" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InstanceClassifier": { + "description": "InstanceClassifier - classifies an incident from a specific brand", + "type": "object", + "properties": { + "brands": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Brands" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "defaultIncidentType": { + "type": "string", + "x-go-name": "DefaultIncidentType" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "feed": { + "type": "boolean", + "x-go-name": "Feed" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "incidentSamples": { + "$ref": "#/definitions/Incidents" + }, + "indicatorSamples": { + "$ref": "#/definitions/FeedIndicators" + }, + "instanceIds": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "InstanceIDs" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "keyTypeMap": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-go-name": "KeyTypeMap" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "logicalVersion": { + "type": "integer", + "format": "int64", + "x-go-name": "LogicalVersion" + }, + "mapping": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Mapper" + }, + "x-go-name": "Mapping" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "nameRaw": { + "type": "string", + "x-go-name": "NameRaw" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourceClassifierId": { + "type": "string", + "x-go-name": "SourceClassifierID" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "transformer": { + "$ref": "#/definitions/AdvanceArg" + }, + "type": { + "$ref": "#/definitions/MapperType" + }, + "unclassifiedCases": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/UnclassifiedCases" + }, + "x-go-name": "UnclassifiedCases" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IntegrationScript": { + "type": "object", + "title": "IntegrationScript ...", + "properties": { + "commands": { + "type": "array", + "items": { + "$ref": "#/definitions/Command" + }, + "x-go-name": "Commands" + }, + "dockerImage": { + "type": "string", + "x-go-name": "DockerImage" + }, + "feed": { + "type": "boolean", + "x-go-name": "Feed" + }, + "isFetch": { + "type": "boolean", + "x-go-name": "IsFetch" + }, + "isFetchCredentials": { + "type": "boolean", + "x-go-name": "IsFetchCredentials" + }, + "isFetchSamples": { + "type": "boolean", + "x-go-name": "IsFetchSamples" + }, + "isMappable": { + "type": "boolean", + "x-go-name": "IsMappable" + }, + "isRemoteSyncIn": { + "type": "boolean", + "x-go-name": "IsRemoteSyncIn" + }, + "isRemoteSyncOut": { + "type": "boolean", + "x-go-name": "IsRemoteSyncOut" + }, + "longRunning": { + "type": "boolean", + "x-go-name": "LongRunning" + }, + "longRunningPortMapping": { + "type": "boolean", + "x-go-name": "LongRunningPort" + }, + "resetContext": { + "type": "boolean", + "x-go-name": "ResetContext" + }, + "runOnce": { + "type": "boolean", + "x-go-name": "RunOnce" + }, + "script": { + "type": "string", + "x-go-name": "Script" + }, + "subtype": { + "$ref": "#/definitions/ScriptSubType" + }, + "type": { + "$ref": "#/definitions/ScriptType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvPlaybookDebugInfo": { + "type": "object", + "title": "InvPlaybookDebugInfo ...", + "properties": { + "originalInvPBId": { + "type": "string", + "x-go-name": "OriginalInvPBID" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvPlaybookTaskCompleteData": { + "type": "object", + "title": "InvPlaybookTaskCompleteData ...", + "properties": { + "arguments": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Arguments" + }, + "calculatedDescription": { + "type": "string", + "x-go-name": "CalculatedDescription" + }, + "calculatedTaskName": { + "type": "string", + "x-go-name": "CalculatedTaskName" + }, + "completedBy": { + "type": "string", + "x-go-name": "CompletedBy" + }, + "completedCount": { + "type": "integer", + "format": "int64", + "x-go-name": "CompletedCount" + }, + "completedDate": { + "type": "string", + "format": "date-time", + "x-go-name": "CompletedDate" + }, + "entries": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Entries" + }, + "input": { + "type": "string", + "x-go-name": "Input" + }, + "outputs": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Outputs" + }, + "playbookInputs": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "PlaybookInputs" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "state": { + "$ref": "#/definitions/TaskState" + }, + "willNotExecuteCount": { + "type": "integer", + "format": "int64", + "x-go-name": "WillNotExecuteCount" + }, + "willNotExecuteReason": { + "type": "string", + "x-go-name": "WillNotExecuteReason" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvPlaybookTaskData": { + "type": "object", + "title": "InvPlaybookTaskData ...", + "properties": { + "addAfter": { + "type": "boolean", + "x-go-name": "AddAfter" + }, + "addToSeparateBranch": { + "type": "boolean", + "x-go-name": "AddToSeparateBranch" + }, + "automationScript": { + "type": "string", + "x-go-name": "AutomationScript" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "loop": { + "$ref": "#/definitions/TaskLoop" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "neighborInvPBTaskId": { + "type": "string", + "x-go-name": "NeighborInvPBTaskID" + }, + "playbookId": { + "type": "string", + "x-go-name": "PlaybookID" + }, + "scriptArguments": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "ScriptArguments" + }, + "separateContext": { + "type": "boolean", + "x-go-name": "SeparateContext" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "type": { + "$ref": "#/definitions/TaskType" + } + }, + "x-go-package": "github.com/demisto/server/services" + }, + "InvTaskDebug": { + "type": "object", + "title": "InvTaskDebug ...", + "properties": { + "breakpointCondition": { + "$ref": "#/definitions/ArgFilter" + }, + "inputOverrides": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-go-name": "InputOverrides" + }, + "isMarkedWithBreakpoint": { + "type": "boolean", + "x-go-name": "IsMarkedWithBreakpoint" + }, + "isMarkedWithSkip": { + "type": "boolean", + "x-go-name": "IsMarkedWithSkip" + }, + "outputOverrides": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "OutputOverrides" + }, + "shouldOverrideDebugInfo": { + "type": "boolean", + "x-go-name": "ShouldOverrideDebugInfo" + }, + "skipConditionOverrideTo": { + "type": "string", + "x-go-name": "SkipConditionOverrideTo" + }, + "taskOriginalId": { + "type": "string", + "x-go-name": "OriginalID" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Investigation": { + "description": "A special investigation called playground is created for each user-project combination and is a private space for the researcher to play in.", + "type": "object", + "title": "Investigation contains the investigation of a particular incident.", + "properties": { + "ShardID": { + "type": "integer", + "format": "int64" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "category": { + "description": "Category of the investigation", + "type": "string", + "x-go-name": "Category" + }, + "childInvestigations": { + "description": "ChildInvestigations id's", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ChildInvestigations" + }, + "closed": { + "description": "When was this closed", + "type": "string", + "format": "date-time", + "x-go-name": "Closed" + }, + "closingUserId": { + "description": "The user ID that closed this investigation", + "type": "string", + "x-go-name": "ClosingUserID" + }, + "created": { + "description": "When was this created", + "type": "string", + "format": "date-time", + "x-go-name": "Created" + }, + "creatingUserId": { + "description": "The user ID that created this investigation", + "type": "string", + "x-go-name": "CreatingUserID" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "details": { + "description": "User defined free text details", + "type": "string", + "x-go-name": "Details" + }, + "entitlements": { + "description": "One time entitlements", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Entitlements" + }, + "entryUsers": { + "description": "EntryUsers", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "EntryUsers" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highPriority": { + "description": "HighPriority - tasks of this investigation should run in high priority", + "type": "boolean", + "x-go-name": "HighPriority" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "isChildInvestigation": { + "description": "IsChildInvestigation", + "type": "boolean", + "x-go-name": "IsChildInvestigation" + }, + "isDebug": { + "description": "IsDebug ...", + "type": "boolean", + "x-go-name": "IsDebug" + }, + "lastOpen": { + "type": "string", + "format": "date-time", + "x-go-name": "LastOpen" + }, + "mirrorAutoClose": { + "description": "MirrorAutoClose will tell us to close the Chat Module channel if we close investigation", + "type": "object", + "additionalProperties": { + "type": "boolean" + }, + "x-go-name": "MirrorAutoClose" + }, + "mirrorTypes": { + "description": "MirrorTypes holds info about mirror direction and message type to be mirrored\nmessage type can be either 'all' or 'chat'\ndirection can be either 'FromDemisto', 'ToDemisto' or 'Both' if this investigation is mirrored", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-go-name": "MirrorTypes" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "description": "The name of the investigation, which is unique to the project", + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "openDuration": { + "description": "Duration from open to close time", + "type": "integer", + "format": "int64", + "x-go-name": "OpenDuration" + }, + "parentInvestigation": { + "description": "ParentInvestigation - parent id, in case this is a child investigation of another investigation", + "type": "string", + "x-go-name": "ParentInvestigation" + }, + "persistentEntitlements": { + "description": "Persistent entitlement per tag. Empty tag will also return an entitlement", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-go-name": "PersistentEntitlements" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "rawCategory": { + "type": "string", + "x-go-name": "RawCategory" + }, + "reason": { + "description": "The reason for the status (resolve)", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-go-name": "Reason" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "runStatus": { + "$ref": "#/definitions/RunStatus" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "slackMirrorAutoClose": { + "description": "DEPRECATED - DeprecatedSlackMirrorAutoClose will tell us to close the Slack channel if we close investigation", + "type": "boolean", + "x-go-name": "DeprecatedSlackMirrorAutoClose" + }, + "slackMirrorType": { + "description": "DEPRECATED - DeprecatedSlackMirrorType holds info about mirror direction and message type to be mirror\nmessage type can be either 'all' or 'chat'\ndirection can be either 'demisto2Slack', 'slack2Demisto' or 'both' if this investigation is mirrored to Slack", + "type": "string", + "x-go-name": "DeprecatedSlackMirrorType" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "status": { + "$ref": "#/definitions/InvestigationStatus" + }, + "systems": { + "description": "The systems involved", + "type": "array", + "items": { + "$ref": "#/definitions/System" + }, + "x-go-name": "Systems" + }, + "tags": { + "description": "Tags", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "type": { + "$ref": "#/definitions/InvestigationType" + }, + "users": { + "description": "The users who share this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Users" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvestigationFilter": { + "type": "object", + "title": "InvestigationFilter allows for very simple filtering.", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "andOp": { + "type": "boolean", + "x-go-name": "AndOp" + }, + "category": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Category" + }, + "fromCloseDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromCloseDate" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "id": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ID" + }, + "idsOnly": { + "type": "boolean", + "x-go-name": "IdsOnly" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "includeChildInv": { + "type": "boolean", + "x-go-name": "IncludeChildInv" + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Name" + }, + "notCategory": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "NotCategory" + }, + "notIDs": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "NotIDs" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "reason": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Reason" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "status": { + "type": "array", + "items": { + "$ref": "#/definitions/InvestigationStatus" + }, + "x-go-name": "Status" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toCloseDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToCloseDate" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "type": { + "type": "array", + "items": { + "$ref": "#/definitions/InvestigationType" + }, + "x-go-name": "Type" + }, + "user": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "User" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "InvestigationPlaybook": { + "description": "InvestigationPlaybook is a wrapper for a linked list of Playbook tasks", + "type": "object", + "properties": { + "Dirty": { + "type": "boolean" + }, + "ReadyPlaybookInputs": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "ReplacedPlaybook": { + "description": "Indicate whether this playbook has new history during this session", + "type": "boolean" + }, + "ShardID": { + "type": "integer", + "format": "int64" + }, + "UpdatedOperatorIDs": { + "type": "boolean" + }, + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "autoExtracting": { + "type": "boolean", + "x-go-name": "AutoExtracting" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "comment": { + "type": "string", + "x-go-name": "Description" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "incidentCreateDate": { + "description": "Incident create date", + "type": "string", + "format": "date-time", + "x-go-name": "IncidentCreateDate" + }, + "inputs": { + "$ref": "#/definitions/PlaybookInputs" + }, + "invPBDebugInfo": { + "$ref": "#/definitions/InvPlaybookDebugInfo" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + }, + "isTIM": { + "type": "boolean", + "x-go-name": "IsTIM" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "outputs": { + "$ref": "#/definitions/PlaybookOutputs" + }, + "pbHistory": { + "description": "in: body", + "type": "array", + "items": { + "$ref": "#/definitions/InvestigationPlaybookData" + }, + "x-go-name": "PbHistory" + }, + "pendingTasks": { + "description": "Tasks that are marked for running, but cannot yet run due to incomplete parents", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "PendingTasks" + }, + "playbookId": { + "type": "string", + "x-go-name": "PlaybookID" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "quiet": { + "type": "boolean", + "x-go-name": "Quiet" + }, + "recoveryAttempts": { + "type": "integer", + "format": "int64", + "x-go-name": "RecoveryAttempts" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "serverId": { + "description": "Holds the ID of the responsible cluster app server", + "type": "string", + "x-go-name": "ServerID" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "startTaskId": { + "description": "FirstTask is the root task of the playbook", + "type": "string", + "x-go-name": "StartTaskID" + }, + "state": { + "$ref": "#/definitions/InvestigationPlaybookState" + }, + "subPlaybookInputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PlaybookInputs" + }, + "x-go-name": "SubPlaybookInputs" + }, + "subPlaybookOutputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PlaybookOutputs" + }, + "x-go-name": "SubPlaybookOutputs" + }, + "tasks": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/InvestigationPlaybookTask" + }, + "x-go-name": "Tasks" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "view": { + "$ref": "#/definitions/PlaybookView" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvestigationPlaybookData": { + "description": "InvestigationPlaybookData returns all data of an investigation playbook, not including history", + "type": "object", + "properties": { + "ReadyPlaybookInputs": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "autoExtracting": { + "type": "boolean", + "x-go-name": "AutoExtracting" + }, + "comment": { + "type": "string", + "x-go-name": "Description" + }, + "inputs": { + "$ref": "#/definitions/PlaybookInputs" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + }, + "isTIM": { + "type": "boolean", + "x-go-name": "IsTIM" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "outputs": { + "$ref": "#/definitions/PlaybookOutputs" + }, + "pendingTasks": { + "description": "Tasks that are marked for running, but cannot yet run due to incomplete parents", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "PendingTasks" + }, + "playbookId": { + "type": "string", + "x-go-name": "PlaybookID" + }, + "quiet": { + "type": "boolean", + "x-go-name": "Quiet" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "startTaskId": { + "description": "FirstTask is the root task of the playbook", + "type": "string", + "x-go-name": "StartTaskID" + }, + "state": { + "$ref": "#/definitions/InvestigationPlaybookState" + }, + "subPlaybookInputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PlaybookInputs" + }, + "x-go-name": "SubPlaybookInputs" + }, + "subPlaybookOutputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PlaybookOutputs" + }, + "x-go-name": "SubPlaybookOutputs" + }, + "tasks": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/InvestigationPlaybookTask" + }, + "x-go-name": "Tasks" + }, + "view": { + "$ref": "#/definitions/PlaybookView" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvestigationPlaybookState": { + "description": "InvestigationPlaybookState indicates the state of the running playbook", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "InvestigationPlaybookTask": { + "description": "InvestigationPlaybookTask is the Task in the playbook context as a node", + "type": "object", + "properties": { + "Reopen": { + "type": "boolean" + }, + "arguments": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Arguments" + }, + "assignee": { + "type": "string", + "x-go-name": "Assignee" + }, + "assigneeSet": { + "type": "boolean", + "x-go-name": "AssigneeSet" + }, + "blockingTasks": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "BlockingTasks" + }, + "calculatedDescription": { + "type": "string", + "x-go-name": "CalculatedDescription" + }, + "calculatedTaskName": { + "type": "string", + "x-go-name": "CalculatedTaskName" + }, + "comments": { + "description": "Whether this task had any comments or not", + "type": "boolean", + "x-go-name": "Comments" + }, + "completedBy": { + "type": "string", + "x-go-name": "CompletedBy" + }, + "completedCount": { + "type": "integer", + "format": "int64", + "x-go-name": "CompletedCount" + }, + "completedDate": { + "type": "string", + "format": "date-time", + "x-go-name": "CompletedDate" + }, + "conditions": { + "description": "Conditions - optional list of conditions to run when task is conditional. we check conditions by their order (e.i. - considering the first one that satisfied)", + "type": "array", + "items": { + "$ref": "#/definitions/TaskCondition" + }, + "x-go-name": "Conditions" + }, + "continueOnError": { + "type": "boolean", + "x-go-name": "ContinueOnError" + }, + "defaultAssignee": { + "type": "string", + "x-go-name": "DefaultAssignee" + }, + "defaultAssigneeComplex": { + "$ref": "#/definitions/AdvanceArg" + }, + "defaultReminder": { + "type": "integer", + "format": "int64", + "x-go-name": "DefaultReminder" + }, + "doNotSaveTaskHistory": { + "type": "boolean", + "x-go-name": "DoNotSaveTaskHistory" + }, + "dueDate": { + "type": "string", + "format": "date-time", + "x-go-name": "DueDate" + }, + "dueDateDuration": { + "type": "integer", + "format": "int64", + "x-go-name": "DueDateDuration" + }, + "dueDateDurationUnit": { + "$ref": "#/definitions/SLADurationUnit" + }, + "dueDateSet": { + "type": "boolean", + "x-go-name": "DueDateSet" + }, + "entries": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Entries" + }, + "evidenceData": { + "$ref": "#/definitions/EvidenceData" + }, + "executionCount": { + "type": "integer", + "format": "int64", + "x-go-name": "ExecutionCount" + }, + "externalFormUseAuth": { + "type": "boolean", + "x-go-name": "ExternalFormUseAuth" + }, + "fieldMapping": { + "type": "array", + "items": { + "$ref": "#/definitions/FieldMapping" + }, + "x-go-name": "FieldMappingArray" + }, + "forEachIndex": { + "description": "Parameters needed for loops", + "type": "integer", + "format": "int64", + "x-go-name": "ForEachIndex" + }, + "forEachInputs": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "object" + } + }, + "x-go-name": "ForEachInputs" + }, + "form": { + "$ref": "#/definitions/DataCollectionForm" + }, + "formDisplay": { + "$ref": "#/definitions/FormDisplay" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "ignoreWorker": { + "description": "Do not run this task in a worker", + "type": "boolean", + "x-go-name": "IgnoreWorker" + }, + "indent": { + "type": "integer", + "format": "int64", + "x-go-name": "Indent" + }, + "input": { + "type": "string", + "x-go-name": "Input" + }, + "isAutoSwitchedToQuietMode": { + "type": "boolean", + "x-go-name": "IsAutoSwitchedToQuietMode" + }, + "isOverSize": { + "type": "boolean", + "x-go-name": "IsOverSize" + }, + "loop": { + "$ref": "#/definitions/TaskLoop" + }, + "message": { + "$ref": "#/definitions/NotifiableItem" + }, + "missingContentItem": { + "description": "content item which caused task to skip", + "type": "string", + "x-go-name": "MissingContentItem" + }, + "nextPollingTime": { + "description": "NextPollTime Time of the next scheduled command execution", + "type": "string", + "format": "date-time", + "x-go-name": "NextPollTime" + }, + "nextTasks": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "NextTasks" + }, + "note": { + "type": "boolean", + "x-go-name": "Note" + }, + "outputs": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Outputs" + }, + "parentBlockCount": { + "description": "the number of tasks that are waiting on blocked in subplaybooks of this task", + "type": "integer", + "format": "int64", + "x-go-name": "ParentBlockCount" + }, + "parentPlaybookID": { + "type": "string", + "x-go-name": "ParentPlaybookTaskID" + }, + "patched": { + "description": "Indicates whether this task was patched to InvPB and did not originally belong to the playbook", + "type": "boolean", + "x-go-name": "Patched" + }, + "playbookInputs": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "PlaybookInputs" + }, + "pollingEntries": { + "description": "PollingEntryIDs IDs of entries that are still polling", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PollingEntryIDs" + }, + "pollingTimeoutTime": { + "type": "string", + "format": "date-time", + "x-go-name": "PollingTimeoutTime" + }, + "previousTasks": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "PreviousTasks" + }, + "quietMode": { + "$ref": "#/definitions/QuietMode" + }, + "reminder": { + "description": "Duration in minutes, this field is not persisted here", + "type": "integer", + "format": "int64", + "x-go-name": "Reminder" + }, + "reputationCalc": { + "$ref": "#/definitions/ReputationCalcAlg" + }, + "restrictedCompletion": { + "type": "boolean", + "x-go-name": "RestrictedCompletion" + }, + "scriptArguments": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "ScriptArguments" + }, + "separateContext": { + "type": "boolean", + "x-go-name": "SeparateContext" + }, + "skip": { + "description": "Skip - if true then this task will be skipped and all the tasks which comes after this task and depend on it\nwill skip (WillNotExecute)", + "type": "boolean", + "x-go-name": "Skip" + }, + "skipUnavailable": { + "description": "SkipUnavailable if true then will check if automation exists, integration of that command is installed and\nactive or sub playbook exists in Demisto", + "type": "boolean", + "x-go-name": "SkipUnavailable" + }, + "sla": { + "$ref": "#/definitions/SLA" + }, + "slaReminder": { + "$ref": "#/definitions/SLA" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "startedExecutingHarmfulScript": { + "type": "boolean", + "x-go-name": "StartedExecutingHarmfulScript" + }, + "state": { + "$ref": "#/definitions/TaskState" + }, + "subPlaybook": { + "$ref": "#/definitions/InvestigationPlaybook" + }, + "task": { + "$ref": "#/definitions/Task" + }, + "taskCompleteData": { + "description": "History complete data", + "type": "array", + "items": { + "$ref": "#/definitions/InvPlaybookTaskCompleteData" + }, + "x-go-name": "TaskCompleteData" + }, + "taskDebug": { + "$ref": "#/definitions/InvTaskDebug" + }, + "taskId": { + "type": "string", + "x-go-name": "TaskID" + }, + "taskSize": { + "type": "integer", + "format": "int64", + "x-go-name": "TaskSize" + }, + "timerTriggers": { + "description": "SLA fields", + "type": "array", + "items": { + "$ref": "#/definitions/TimerTrigger" + }, + "x-go-name": "TimerTriggers" + }, + "timesPolled": { + "type": "integer", + "format": "int64", + "x-go-name": "TimesPolled" + }, + "type": { + "$ref": "#/definitions/TaskType" + }, + "view": { + "$ref": "#/definitions/TaskView" + }, + "willNotExecuteCount": { + "type": "integer", + "format": "int64", + "x-go-name": "WillNotExecuteCount" + }, + "willNotExecuteReason": { + "type": "string", + "x-go-name": "WillNotExecuteReason" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "InvestigationSearchResponse": { + "description": "InvestigationSearchResponse returns the response from the investigation search", + "type": "object", + "properties": { + "data": { + "description": "in: body", + "type": "array", + "items": { + "$ref": "#/definitions/Investigation" + }, + "x-go-name": "Data" + }, + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "InvestigationStatus": { + "description": "InvestigationStatus is the status type", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "InvestigationType": { + "type": "number", + "format": "double", + "title": "InvestigationType ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "Investigations": { + "description": "Investigations is a slice of investigation", + "type": "array", + "items": { + "$ref": "#/definitions/Investigation" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IocObject": { + "description": "IocObject - represents an Ioc (or simply an indicator) object", + "type": "object", + "properties": { + "CustomFields": { + "$ref": "#/definitions/CustomFields" + }, + "account": { + "type": "string", + "x-go-name": "Account" + }, + "aggregatedReliability": { + "type": "string", + "x-go-name": "AggregatedReliability" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "calculatedTime": { + "description": "Do not set the fields bellow this line", + "type": "string", + "format": "date-time", + "x-go-name": "CalculatedTime" + }, + "comment": { + "type": "string", + "x-go-name": "Comment" + }, + "comments": { + "$ref": "#/definitions/Comments" + }, + "deletedFeedFetchTime": { + "type": "string", + "format": "date-time", + "x-go-name": "DeletedFeedFetchTime" + }, + "expiration": { + "type": "string", + "format": "date-time", + "x-go-name": "ExpirationTime" + }, + "expirationSource": { + "$ref": "#/definitions/ExpirationSource" + }, + "expirationStatus": { + "$ref": "#/definitions/ExpirationStatus" + }, + "firstSeen": { + "type": "string", + "format": "date-time", + "x-go-name": "FirstSeen" + }, + "firstSeenEntryID": { + "type": "string", + "x-go-name": "FirstSeenEntryID" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "indicator_type": { + "type": "string", + "x-go-name": "Type" + }, + "insightCache": { + "$ref": "#/definitions/InsightCache" + }, + "investigationIDs": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "InvestigationIDs" + }, + "isShared": { + "type": "boolean", + "x-go-name": "IsShared" + }, + "lastReputationRun": { + "type": "string", + "format": "date-time", + "x-go-name": "LastReputationRun" + }, + "lastSeen": { + "type": "string", + "format": "date-time", + "x-go-name": "LastSeen" + }, + "lastSeenEntryID": { + "type": "string", + "x-go-name": "LastSeenEntryID" + }, + "manualExpirationTime": { + "type": "string", + "format": "date-time", + "x-go-name": "ManualExpirationTime" + }, + "manualScore": { + "type": "boolean", + "x-go-name": "ManualScore" + }, + "manualSetTime": { + "type": "string", + "format": "date-time", + "x-go-name": "ManualSetTime" + }, + "manuallyEditedFields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ManuallyEditedFields" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "modifiedTime": { + "type": "string", + "format": "date-time", + "x-go-name": "ModifiedTime" + }, + "moduleToFeedMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/FeedIndicator" + }, + "x-go-name": "ModuleToFeedMap" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "relatedIncCount": { + "type": "integer", + "format": "int64", + "x-go-name": "RelatedIncCount" + }, + "score": { + "type": "integer", + "format": "int64", + "x-go-name": "Score" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "setBy": { + "type": "string", + "x-go-name": "SetBy" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "source": { + "type": "string", + "x-go-name": "Source" + }, + "sourceBrands": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SourceBrands" + }, + "sourceInstances": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SourceInstances" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "x-go-name": "TimeStamp" + }, + "value": { + "type": "string", + "x-go-name": "Value" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "IocObjects": { + "type": "array", + "title": "IocObjects ...", + "items": { + "$ref": "#/definitions/IocObject" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "KeyValueArg": { + "type": "object", + "title": "KeyValueArg ...", + "properties": { + "key": { + "type": "string", + "x-go-name": "Key" + }, + "value": { + "$ref": "#/definitions/AdvanceArg" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Label": { + "type": "object", + "title": "Label ...", + "properties": { + "type": { + "type": "string", + "x-go-name": "Type" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Layout": { + "type": "object", + "title": "Layout ...", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "kind": { + "type": "string", + "x-go-name": "Kind" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "prevKind": { + "type": "string", + "x-go-name": "PrevKind" + }, + "prevTypeId": { + "type": "string", + "x-go-name": "PrevTypeID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/definitions/LayoutSection" + }, + "x-go-name": "Sections" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "typeId": { + "type": "string", + "x-go-name": "TypeID" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/olddomain" + }, + "LayoutAPI": { + "description": "LayoutAPI - request sent from the client contains some or all\nof the fields.", + "type": "object", + "properties": { + "kind": { + "type": "string", + "x-go-name": "Kind" + }, + "layout": { + "$ref": "#/definitions/Layout" + }, + "typeId": { + "type": "string", + "x-go-name": "TypeID" + } + }, + "x-go-package": "github.com/demisto/server/olddomain" + }, + "LayoutCommon": { + "type": "object", + "title": "LayoutCommon ...", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "kind": { + "type": "string", + "x-go-name": "Kind" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "prevKind": { + "type": "string", + "x-go-name": "PrevKind" + }, + "prevTypeId": { + "type": "string", + "x-go-name": "PrevTypeID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "typeId": { + "type": "string", + "x-go-name": "TypeID" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/olddomain" + }, + "LayoutField": { + "type": "object", + "title": "LayoutField ...", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "fieldId": { + "type": "string", + "x-go-name": "FieldID" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "isVisible": { + "type": "boolean", + "x-go-name": "IsVisible" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/olddomain" + }, + "LayoutSection": { + "type": "object", + "title": "LayoutSection ...", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "fields": { + "type": "array", + "items": { + "$ref": "#/definitions/LayoutField" + }, + "x-go-name": "Fields" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "isVisible": { + "type": "boolean", + "x-go-name": "IsVisible" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "query": { + "type": "object", + "x-go-name": "Query" + }, + "queryType": { + "type": "string", + "x-go-name": "QueryType" + }, + "readOnly": { + "type": "boolean", + "x-go-name": "IsReadOnly" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/olddomain" + }, + "Location": { + "type": "object", + "properties": { + "array_positions": { + "$ref": "#/definitions/ArrayPositions" + }, + "end": { + "type": "integer", + "format": "uint64", + "x-go-name": "End" + }, + "pos": { + "description": "Pos is the position of the term within the field, starting at 1", + "type": "integer", + "format": "uint64", + "x-go-name": "Pos" + }, + "start": { + "description": "Start and End are the byte offsets of the term in the field", + "type": "integer", + "format": "uint64", + "x-go-name": "Start" + } + }, + "x-go-package": "github.com/blevesearch/bleve/v2/search" + }, + "Locations": { + "type": "array", + "items": { + "$ref": "#/definitions/Location" + }, + "x-go-package": "github.com/blevesearch/bleve/v2/search" + }, + "Mapper": { + "description": "Mapper - mapper for new incidents", + "type": "object", + "properties": { + "dontMapEventToLabels": { + "description": "DontMapEventToLabels by default we will map all the fields of the event to incident labels", + "type": "boolean", + "x-go-name": "DontMapEventToLabels" + }, + "internalMapping": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "InternalMapping" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "MapperType": { + "description": "MapperType for instance classifier", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "ModuleArgs": { + "description": "ModuleArgs represents module args", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ModuleConfiguration": { + "description": "ModuleConfiguration is the configuration parameters for a module", + "type": "object", + "properties": { + "beta": { + "type": "boolean", + "x-go-name": "Beta" + }, + "brand": { + "type": "string", + "x-go-name": "Brand" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "canGetSamples": { + "type": "boolean", + "x-go-name": "CanGetSamples" + }, + "category": { + "type": "string", + "x-go-name": "Category" + }, + "cmdline": { + "type": "string", + "x-go-name": "Cmdline" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "configuration": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigField" + }, + "x-go-name": "Configuration" + }, + "defaultClassifier": { + "type": "string", + "x-go-name": "DefaultClassifier" + }, + "defaultMapperIn": { + "type": "string", + "x-go-name": "DefaultMapperIn" + }, + "defaultMapperOut": { + "type": "string", + "x-go-name": "DefaultMapperOut" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "deprecated": { + "type": "boolean", + "x-go-name": "Deprecated" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "detailedDescription": { + "type": "string", + "x-go-name": "DetailedDescription" + }, + "display": { + "type": "string", + "x-go-name": "Display" + }, + "executable": { + "type": "string", + "x-go-name": "Executable" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "hideEngines": { + "type": "boolean", + "x-go-name": "HideEngines" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "icon": { + "type": "string", + "x-go-name": "Icon" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "image": { + "type": "string", + "x-go-name": "Image" + }, + "integrationScript": { + "$ref": "#/definitions/IntegrationScript" + }, + "isPasswordProtected": { + "type": "boolean", + "x-go-name": "IsPasswordProtected" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "path": { + "type": "string", + "x-go-name": "Path" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "private": { + "type": "boolean", + "x-go-name": "Private" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "readonly": { + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "scriptNotVisible": { + "type": "boolean", + "x-go-name": "ScriptNotVisible" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourceModuleID": { + "type": "string", + "x-go-name": "SourceModuleID" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "NewDockerImage": { + "description": "NewDockerImage creation request", + "type": "object", + "properties": { + "base": { + "type": "string", + "x-go-name": "BaseImage" + }, + "dependencies": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Dependencies" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "packages": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Packages" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "NewDockerImageResult": { + "description": "NewDockerImageResult of the command", + "type": "object", + "properties": { + "createdName": { + "type": "string", + "x-go-name": "CreatedName" + }, + "output": { + "type": "string", + "x-go-name": "Output" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "NotifiableItem": { + "type": "object", + "title": "NotifiableItem ...", + "properties": { + "bcc": { + "$ref": "#/definitions/AdvanceArg" + }, + "body": { + "$ref": "#/definitions/AdvanceArg" + }, + "cc": { + "$ref": "#/definitions/AdvanceArg" + }, + "defaultOption": { + "type": "string", + "x-go-name": "DefaultOption" + }, + "format": { + "type": "string", + "x-go-name": "Format" + }, + "methods": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Methods" + }, + "replyOptions": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReplyOptions" + }, + "subject": { + "$ref": "#/definitions/AdvanceArg" + }, + "timings": { + "$ref": "#/definitions/NotifyTimings" + }, + "to": { + "$ref": "#/definitions/AdvanceArg" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "NotifyTimings": { + "type": "object", + "title": "NotifyTimings - time control on notify items - retries max count and intervals.", + "properties": { + "completeAfterReplies": { + "type": "integer", + "format": "uint64", + "x-go-name": "CompleteAfterReplies" + }, + "completeAfterSLA": { + "type": "boolean", + "x-go-name": "CompleteAfterSLA" + }, + "completeAfterV2": { + "type": "boolean", + "x-go-name": "CompleteAfterV2" + }, + "retriesCount": { + "type": "integer", + "format": "uint64", + "x-go-name": "RetriesCount" + }, + "retriesInterval": { + "type": "integer", + "format": "uint64", + "x-go-name": "RetriesInterval" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "OperatorArgument": { + "type": "object", + "title": "OperatorArgument ...", + "properties": { + "isContext": { + "type": "boolean", + "x-go-name": "IsContext" + }, + "value": { + "$ref": "#/definitions/AdvanceArg" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "OperatorType": { + "type": "string", + "title": "OperatorType ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "Order": { + "description": "Order struct holds a sort field and the direction of sorting", + "type": "object", + "properties": { + "asc": { + "type": "boolean", + "x-go-name": "Asc" + }, + "field": { + "type": "string", + "x-go-name": "Field" + }, + "fieldType": { + "type": "string", + "x-go-name": "FieldType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Output": { + "description": "Output of a module command", + "type": "object", + "properties": { + "contentPath": { + "type": "string", + "x-go-name": "ContentPath" + }, + "contextPath": { + "type": "string", + "x-go-name": "ContextPath" + }, + "description": { + "description": "Description is either a string or a map from string to interface", + "type": "object", + "x-go-name": "Description" + }, + "type": { + "$ref": "#/definitions/OutputType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "OutputType": { + "type": "string", + "title": "OutputType ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "Period": { + "type": "object", + "title": "Period holds the 'Period' query, such as last 3 days, last 6 hours, between 6 days from now until 3 days from now.", + "properties": { + "by": { + "description": "By is used for legacty, and if exists it will override ByTo and ByFrom", + "type": "string", + "x-go-name": "By" + }, + "byFrom": { + "type": "string", + "x-go-name": "ByFrom" + }, + "byTo": { + "type": "string", + "x-go-name": "ByTo" + }, + "field": { + "type": "string", + "x-go-name": "Field" + }, + "fromValue": { + "type": "string", + "format": "duration", + "x-go-name": "FromValue" + }, + "toValue": { + "type": "string", + "format": "duration", + "x-go-name": "ToValue" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Playbook": { + "description": "Playbook is a collection of tasks", + "type": "object", + "properties": { + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "brands": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Brands" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commands": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Commands" + }, + "comment": { + "type": "string", + "x-go-name": "Description" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "deprecated": { + "type": "boolean", + "x-go-name": "Deprecated" + }, + "detached": { + "type": "boolean", + "x-go-name": "Detached" + }, + "encTasks": { + "type": "string", + "x-go-name": "EncTasks" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "inputs": { + "$ref": "#/definitions/PlaybookInputs" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "missingScriptsIds": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "MissingScriptsIDs" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "nameRaw": { + "type": "string", + "x-go-name": "NameRaw" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "outputs": { + "$ref": "#/definitions/PlaybookOutputs" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "private": { + "type": "boolean", + "x-go-name": "Private" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "quiet": { + "type": "boolean", + "x-go-name": "Quiet" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "scriptIds": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ScriptIDs" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "sourcePlaybookID": { + "type": "string", + "x-go-name": "SourcePlaybookID" + }, + "startTaskId": { + "type": "string", + "x-go-name": "StartTaskID" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "taskIds": { + "description": "auto generated field that will contain all task ids in this playbook\nNeeded for searching with bleve", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "TaskIDs" + }, + "tasks": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/PlaybookTask" + }, + "x-go-name": "Tasks" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "view": { + "$ref": "#/definitions/PlaybookView" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookInput": { + "description": "PlaybookInput represents the playbook input", + "type": "object", + "properties": { + "description": { + "type": "string", + "x-go-name": "Description" + }, + "key": { + "type": "string", + "x-go-name": "Key" + }, + "playbookInputQuery": { + "$ref": "#/definitions/PlaybookInputQuery" + }, + "required": { + "type": "boolean", + "x-go-name": "Required" + }, + "value": { + "$ref": "#/definitions/AdvanceArg" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookInputQuery": { + "description": "PlaybookInputQuery represents the playbook query input", + "type": "object", + "properties": { + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "queryEntity": { + "type": "string", + "x-go-name": "QueryEntity" + }, + "queryState": { + "$ref": "#/definitions/QueryState" + }, + "results": { + "type": "object", + "x-go-name": "Results" + }, + "runFromLastJobTime": { + "type": "boolean", + "x-go-name": "RunFromLastJobTime" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookInputs": { + "description": "PlaybookInputs - array of PlaybookInput", + "type": "array", + "items": { + "$ref": "#/definitions/PlaybookInput" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookOutput": { + "description": "PlaybookOutput represents the playbook output", + "type": "object", + "properties": { + "contextPath": { + "type": "string", + "x-go-name": "ContextPath" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "type": { + "$ref": "#/definitions/OutputType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookOutputs": { + "description": "PlaybookOutputs - array of PlaybookOutput", + "type": "array", + "items": { + "$ref": "#/definitions/PlaybookOutput" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookTask": { + "type": "object", + "title": "PlaybookTask ...", + "properties": { + "conditions": { + "description": "Conditions - optional list of conditions to run when task is conditional. we check conditions by their order (e.i. - considering the first one that satisfied)", + "type": "array", + "items": { + "$ref": "#/definitions/TaskCondition" + }, + "x-go-name": "Conditions" + }, + "continueOnError": { + "type": "boolean", + "x-go-name": "ContinueOnError" + }, + "defaultAssignee": { + "type": "string", + "x-go-name": "DefaultAssignee" + }, + "defaultAssigneeComplex": { + "$ref": "#/definitions/AdvanceArg" + }, + "defaultReminder": { + "type": "integer", + "format": "int64", + "x-go-name": "DefaultReminder" + }, + "evidenceData": { + "$ref": "#/definitions/EvidenceData" + }, + "externalFormUseAuth": { + "type": "boolean", + "x-go-name": "ExternalFormUseAuth" + }, + "fieldMapping": { + "type": "array", + "items": { + "$ref": "#/definitions/FieldMapping" + }, + "x-go-name": "FieldMappingArray" + }, + "form": { + "$ref": "#/definitions/DataCollectionForm" + }, + "formDisplay": { + "$ref": "#/definitions/FormDisplay" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "ignoreWorker": { + "description": "Do not run this task in a worker", + "type": "boolean", + "x-go-name": "IgnoreWorker" + }, + "isAutoSwitchedToQuietMode": { + "type": "boolean", + "x-go-name": "IsAutoSwitchedToQuietMode" + }, + "isOverSize": { + "type": "boolean", + "x-go-name": "IsOverSize" + }, + "loop": { + "$ref": "#/definitions/TaskLoop" + }, + "message": { + "$ref": "#/definitions/NotifiableItem" + }, + "nextTasks": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "NextTasks" + }, + "note": { + "type": "boolean", + "x-go-name": "Note" + }, + "quietMode": { + "$ref": "#/definitions/QuietMode" + }, + "reputationCalc": { + "$ref": "#/definitions/ReputationCalcAlg" + }, + "restrictedCompletion": { + "type": "boolean", + "x-go-name": "RestrictedCompletion" + }, + "scriptArguments": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "ScriptArguments" + }, + "separateContext": { + "type": "boolean", + "x-go-name": "SeparateContext" + }, + "skipUnavailable": { + "description": "SkipUnavailable if true then will check if automation exists, integration of that command is installed and\nactive or sub playbook exists in Demisto", + "type": "boolean", + "x-go-name": "SkipUnavailable" + }, + "sla": { + "$ref": "#/definitions/SLA" + }, + "slaReminder": { + "$ref": "#/definitions/SLA" + }, + "task": { + "$ref": "#/definitions/Task" + }, + "taskId": { + "type": "string", + "x-go-name": "TaskID" + }, + "timerTriggers": { + "description": "SLA fields", + "type": "array", + "items": { + "$ref": "#/definitions/TimerTrigger" + }, + "x-go-name": "TimerTriggers" + }, + "type": { + "$ref": "#/definitions/TaskType" + }, + "view": { + "$ref": "#/definitions/TaskView" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "PlaybookView": { + "description": "PlaybookView represents the view in client of playbook graph", + "type": "object", + "x-go-package": "github.com/demisto/server/domain" + }, + "ProcessInfo": { + "description": "ProcessInfo - holds info per worker", + "type": "object", + "properties": { + "Details": { + "type": "string" + }, + "Duration": { + "$ref": "#/definitions/Duration" + }, + "HighPriority": { + "type": "boolean" + }, + "StartedAt": { + "type": "string", + "format": "date-time" + } + }, + "x-go-package": "github.com/demisto/server/util/workers/workersInfo" + }, + "QueryState": { + "description": "QueryState represents the playbook query state", + "type": "object", + "properties": { + "batchSize": { + "type": "integer", + "format": "int64", + "x-go-name": "BatchSize" + }, + "currentPage": { + "type": "integer", + "format": "int64", + "x-go-name": "CurrentPage" + }, + "searchAfter": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "totalResults": { + "type": "integer", + "format": "int64", + "x-go-name": "TotalResults" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Question": { + "type": "object", + "title": "Question - question for a form with a given type.", + "properties": { + "columns": { + "type": "array", + "items": { + "$ref": "#/definitions/GridColumn" + }, + "x-go-name": "GridColumns" + }, + "defaultRows": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "x-go-name": "DefaultRows" + }, + "fieldAssociated": { + "type": "string", + "x-go-name": "FieldAssociated" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "label": { + "type": "string", + "x-go-name": "Label" + }, + "labelArg": { + "$ref": "#/definitions/AdvanceArg" + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Options" + }, + "optionsArg": { + "type": "array", + "items": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "OptionsArg" + }, + "placeholder": { + "type": "string", + "x-go-name": "Placeholder" + }, + "readOnly": { + "type": "boolean", + "x-go-name": "ReadOnly" + }, + "required": { + "type": "boolean", + "x-go-name": "Required" + }, + "tooltip": { + "type": "string", + "x-go-name": "Tooltip" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "QuietMode": { + "description": "QuietMode quiet mode for playbook task", + "type": "integer", + "format": "int64", + "x-go-package": "github.com/demisto/server/domain" + }, + "RBAC": { + "description": "RBAC holds roles data for domain entities", + "type": "object", + "properties": { + "allRead": { + "type": "boolean", + "x-go-name": "IsAllRead" + }, + "allReadWrite": { + "type": "boolean", + "x-go-name": "IsAllReadWrite" + }, + "dbotCreatedBy": { + "description": "Who has created this event - relevant only for manual incidents", + "type": "string", + "x-go-name": "CreatedBy" + }, + "hasRole": { + "description": "Internal field to make queries on role faster", + "type": "boolean", + "x-go-name": "HasRole" + }, + "previousAllRead": { + "type": "boolean", + "x-go-name": "PreviousAllRead" + }, + "previousAllReadWrite": { + "type": "boolean", + "x-go-name": "PreviousAllReadWrite" + }, + "previousRoles": { + "description": "Do not change this field manually", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousRoleName" + }, + "roles": { + "description": "The role assigned to this investigation", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RoleName" + }, + "xsoarHasReadOnlyRole": { + "type": "boolean", + "x-go-name": "HasReadOnlyRole" + }, + "xsoarPreviousReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PreviousReadOnlyRoleName" + }, + "xsoarReadOnlyRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ReadOnlyRoleName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "RawFeedIndicator": { + "description": "RawFeedIndicator is an unparsed feed indicator from JSON ingestion", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-package": "github.com/demisto/server/web" + }, + "RelationshipAPI": { + "type": "object", + "title": "RelationshipAPI ...", + "properties": { + "brand": { + "type": "string", + "x-go-name": "Brand" + }, + "entityA": { + "type": "string", + "x-go-name": "EntityA" + }, + "entityAFamily": { + "type": "string", + "x-go-name": "EntityAFamily" + }, + "entityAType": { + "type": "string", + "x-go-name": "EntityAType" + }, + "entityB": { + "type": "string", + "x-go-name": "EntityB" + }, + "entityBFamily": { + "type": "string", + "x-go-name": "EntityBFamily" + }, + "entityBType": { + "type": "string", + "x-go-name": "EntityBType" + }, + "fields": { + "$ref": "#/definitions/CustomFields" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "instance": { + "type": "string", + "x-go-name": "Instance" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "reliability": { + "$ref": "#/definitions/Reliability" + }, + "reverseName": { + "type": "string", + "x-go-name": "ReverseName" + }, + "startTime": { + "type": "string", + "format": "date-time", + "x-go-name": "StartTime" + }, + "type": { + "type": "string", + "x-go-name": "TypeID" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "RelationshipCommonFields": { + "type": "object", + "title": "RelationshipCommonFields ...", + "properties": { + "entityA": { + "type": "string", + "x-go-name": "EntityA" + }, + "entityAFamily": { + "type": "string", + "x-go-name": "EntityAFamily" + }, + "entityAType": { + "type": "string", + "x-go-name": "EntityAType" + }, + "entityB": { + "type": "string", + "x-go-name": "EntityB" + }, + "entityBFamily": { + "type": "string", + "x-go-name": "EntityBFamily" + }, + "entityBType": { + "type": "string", + "x-go-name": "EntityBType" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "reverseName": { + "type": "string", + "x-go-name": "ReverseName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "RelationshipFilter": { + "description": "and within each parameter only one or more may match.", + "type": "object", + "title": "RelationshipFilter allows filtering on relationship objects. All given parameters must match to return a result,", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "attachIndicators": { + "type": "boolean", + "x-go-name": "AttachIndicators" + }, + "entities": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Entities" + }, + "entityFamilies": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "EntityFamilies" + }, + "entityTypes": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "EntityTypes" + }, + "excludedEntities": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ExcludedEntities" + }, + "excludedEntityTypes": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ExcludedEntityTypes" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Fields" + }, + "filterobjectquery": { + "type": "string", + "x-go-name": "FilterObjectQuery" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "relationshipNames": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RelationshipNames" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "trim_events": { + "type": "integer", + "format": "int64", + "x-go-name": "TrimEvents" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "RelationshipsAPI": { + "type": "array", + "title": "RelationshipsAPI ...", + "items": { + "$ref": "#/definitions/RelationshipAPI" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Reliability": { + "type": "string", + "title": "Reliability ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "Report": { + "description": "Report - represents report", + "type": "object", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "createdBy": { + "type": "string", + "x-go-name": "CreatedBy" + }, + "cron": { + "type": "string", + "x-go-name": "Cron" + }, + "cronView": { + "type": "boolean", + "x-go-name": "CronView" + }, + "dashboard": { + "$ref": "#/definitions/Dashboard" + }, + "decoder": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ReportFieldsDecoder" + }, + "x-go-name": "Decoder" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "disableHeader": { + "type": "boolean", + "x-go-name": "DisableHeader" + }, + "endingDate": { + "type": "string", + "format": "date-time", + "x-go-name": "EndingDate" + }, + "endingType": { + "$ref": "#/definitions/EndingType" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "humanCron": { + "$ref": "#/definitions/HumanCron" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "latestReportName": { + "type": "string", + "x-go-name": "LatestReportName" + }, + "latestReportTime": { + "type": "string", + "format": "date-time", + "x-go-name": "LatestReportTime" + }, + "latestReportUsername": { + "type": "string", + "x-go-name": "LatestReportUsername" + }, + "latestScheduledReportTime": { + "type": "string", + "format": "date-time", + "x-go-name": "LatestScheduledReportTime" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "nextScheduledTime": { + "type": "string", + "format": "date-time", + "x-go-name": "NextScheduledTime" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "orientation": { + "type": "string", + "x-go-name": "Orientation" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "paperSize": { + "type": "string", + "x-go-name": "PaperSize" + }, + "prevName": { + "type": "string", + "x-go-name": "PrevName" + }, + "prevType": { + "type": "string", + "x-go-name": "PrevType" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "recipients": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Recipients" + }, + "recurrent": { + "type": "boolean", + "x-go-name": "Recurrent" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "reportType": { + "type": "string", + "x-go-name": "ReportType" + }, + "runOnce": { + "type": "boolean", + "x-go-name": "RunOnce" + }, + "runningRoles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "RunningRoles" + }, + "runningUser": { + "type": "string", + "x-go-name": "RunningUser" + }, + "scheduled": { + "description": "is it scheduled", + "type": "boolean", + "x-go-name": "Scheduled" + }, + "sections": { + "type": "array", + "items": { + "$ref": "#/definitions/Section" + }, + "x-go-name": "Sections" + }, + "sensitive": { + "type": "boolean", + "x-go-name": "Sensitive" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "times": { + "type": "integer", + "format": "int64", + "x-go-name": "Times" + }, + "timezone": { + "type": "string", + "x-go-name": "Timezone" + }, + "timezoneOffset": { + "type": "integer", + "format": "int64", + "x-go-name": "TimezoneOffset" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "userAPIKey": { + "type": "string", + "x-go-name": "UserAPIKey" + }, + "userAPIKeyID": { + "type": "string", + "x-go-name": "UserAPIKeyID" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ReportAutomation": { + "type": "object", + "title": "ReportAutomation ...", + "properties": { + "args": { + "$ref": "#/definitions/ModuleArgs" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "noEvent": { + "type": "boolean", + "x-go-name": "NoEvent" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ReportFieldsDecoder": { + "type": "object", + "title": "ReportFieldsDecoder ...", + "properties": { + "type": { + "type": "string", + "x-go-name": "Type" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ReportQuery": { + "type": "object", + "title": "ReportQuery ...", + "properties": { + "customGroupBy": { + "$ref": "#/definitions/CustomGroups" + }, + "filter": { + "type": "object", + "x-go-name": "Filter" + }, + "groupBy": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "GroupBy" + }, + "keys": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Keys" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ReputationCalcAlg": { + "type": "number", + "format": "double", + "title": "ReputationCalcAlg ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "ReputationData": { + "description": "ReputationData holds the reputation data (reputation, regex, highlights result)", + "type": "object", + "properties": { + "rawTerm": { + "type": "string", + "x-go-name": "RawTerm" + }, + "reputation": { + "type": "integer", + "format": "int64", + "x-go-name": "Reputation" + }, + "reputationId": { + "type": "string", + "x-go-name": "ReputationID" + }, + "term": { + "type": "string", + "x-go-name": "Term" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "RunStatus": { + "description": "RunStatus of a job", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "SLA": { + "type": "object", + "title": "SLA ...", + "properties": { + "days": { + "type": "integer", + "format": "int64", + "x-go-name": "Days" + }, + "hours": { + "type": "integer", + "format": "int64", + "x-go-name": "Hours" + }, + "minutes": { + "type": "integer", + "format": "int64", + "x-go-name": "Minutes" + }, + "weeks": { + "type": "integer", + "format": "int64", + "x-go-name": "Weeks" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "SLADurationUnit": { + "description": "SLADurationUnit is a helper to calculate if SLA in hours or minutes", + "type": "integer", + "format": "int64", + "x-go-package": "github.com/demisto/server/domain" + }, + "SLAState": { + "description": "SLAState is the incident sla at closure time", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "Schedule": { + "type": "object", + "title": "Schedule ...", + "properties": { + "cron": { + "type": "string", + "x-go-name": "Cron" + }, + "cronView": { + "type": "boolean", + "x-go-name": "CronView" + }, + "endingDate": { + "type": "string", + "format": "date-time", + "x-go-name": "EndingDate" + }, + "endingType": { + "$ref": "#/definitions/EndingType" + }, + "humanCron": { + "$ref": "#/definitions/HumanCron" + }, + "recurrent": { + "type": "boolean", + "x-go-name": "Recurrent" + }, + "scheduled": { + "description": "is it scheduled", + "type": "boolean", + "x-go-name": "Scheduled" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "times": { + "type": "integer", + "format": "int64", + "x-go-name": "Times" + }, + "timezone": { + "type": "string", + "x-go-name": "Timezone" + }, + "timezoneOffset": { + "type": "integer", + "format": "int64", + "x-go-name": "TimezoneOffset" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Scheduler": { + "type": "object", + "title": "Scheduler ...", + "properties": { + "cron": { + "type": "string", + "x-go-name": "Cron" + }, + "cronView": { + "type": "boolean", + "x-go-name": "CronView" + }, + "endingDate": { + "type": "string", + "format": "date-time", + "x-go-name": "EndingDate" + }, + "endingType": { + "$ref": "#/definitions/EndingType" + }, + "humanCron": { + "$ref": "#/definitions/HumanCron" + }, + "recurrent": { + "type": "boolean", + "x-go-name": "Recurrent" + }, + "startDate": { + "type": "string", + "format": "date-time", + "x-go-name": "StartDate" + }, + "times": { + "type": "integer", + "format": "int64", + "x-go-name": "Times" + }, + "timezone": { + "type": "string", + "x-go-name": "Timezone" + }, + "timezoneOffset": { + "type": "integer", + "format": "int64", + "x-go-name": "TimezoneOffset" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "ScriptAPI": { + "type": "object", + "title": "ScriptAPI ...", + "properties": { + "arguments": { + "type": "array", + "items": { + "$ref": "#/definitions/Argument" + }, + "x-go-name": "Args" + }, + "comment": { + "type": "string", + "x-go-name": "Comment" + }, + "contextKeys": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ContextKeys" + }, + "dependsOn": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "DependsOn" + }, + "deprecated": { + "type": "boolean", + "x-go-name": "Deprecated" + }, + "detached": { + "type": "boolean", + "x-go-name": "Detached" + }, + "dockerImage": { + "type": "string", + "x-go-name": "DockerImage" + }, + "enabled": { + "type": "boolean", + "x-go-name": "Enabled" + }, + "hidden": { + "type": "boolean", + "x-go-name": "Hidden" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "outputs": { + "type": "array", + "items": { + "$ref": "#/definitions/Output" + }, + "x-go-name": "Outputs" + }, + "permitted": { + "type": "boolean", + "x-go-name": "Permitted" + }, + "polling": { + "type": "boolean", + "x-go-name": "Polling" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Roles" + }, + "runAs": { + "type": "string", + "x-go-name": "RunAs" + }, + "scriptTarget": { + "$ref": "#/definitions/ScriptTarget" + }, + "system": { + "type": "boolean", + "x-go-name": "System" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "type": { + "$ref": "#/definitions/ScriptType" + }, + "user": { + "type": "string", + "x-go-name": "User" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Version" + } + }, + "x-go-package": "github.com/demisto/server/services/automation" + }, + "ScriptSubType": { + "description": "ScriptSubType holds the script type version", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "ScriptTarget": { + "description": "ScriptTarget represents the module where this script should run", + "type": "integer", + "format": "int64", + "x-go-package": "github.com/demisto/server/domain" + }, + "ScriptType": { + "description": "ScriptType holds the type of a script", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "SearchIncidentsData": { + "type": "object", + "title": "SearchIncidentsData ...", + "properties": { + "filter": { + "$ref": "#/definitions/IncidentFilter" + }, + "userFilter": { + "type": "boolean", + "x-go-name": "FilterByUser" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "SearchInvestigationsData": { + "type": "object", + "title": "SearchInvestigationsData ...", + "properties": { + "filter": { + "$ref": "#/definitions/InvestigationFilter" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "SearchStats": { + "type": "object", + "title": "SearchStats ...", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "committed": { + "type": "string", + "format": "date-time", + "x-go-name": "Committed" + }, + "duration": { + "type": "integer", + "format": "int64", + "x-go-name": "DurationInMilliseconds" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "searchSource": { + "type": "string", + "x-go-name": "SearchSource" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "username": { + "type": "string", + "x-go-name": "Username" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "SearchStatsDeletionResponse": { + "description": "SearchStatsDeletionResponse returns the response from deleting old slow searches", + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "SearchStatsResponse": { + "description": "SearchStatsResponse returns the response from getting slow searches", + "type": "object", + "properties": { + "evidences": { + "type": "array", + "items": { + "$ref": "#/definitions/SearchStats" + }, + "x-go-name": "Data" + }, + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "Section": { + "type": "object", + "title": "Section ...", + "properties": { + "autoPageBreak": { + "type": "boolean", + "x-go-name": "AutoPageBreak" + }, + "automation": { + "$ref": "#/definitions/ReportAutomation" + }, + "data": { + "type": "object", + "x-go-name": "Data" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "displayType": { + "type": "string", + "x-go-name": "DisplayType" + }, + "emptyNotification": { + "type": "string", + "x-go-name": "EmptyNotification" + }, + "fromDate": { + "type": "string", + "x-go-name": "FromDate" + }, + "hideItemTitleOnlyOne": { + "type": "boolean", + "x-go-name": "HideItemTitleOnlyOne" + }, + "layout": { + "type": "object", + "x-go-name": "Layout" + }, + "query": { + "$ref": "#/definitions/ReportQuery" + }, + "title": { + "type": "string", + "x-go-name": "Title" + }, + "titleStyle": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "TitleStyle" + }, + "toDate": { + "type": "string", + "x-go-name": "ToDate" + }, + "type": { + "type": "string", + "x-go-name": "Type" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Severity": { + "description": "Severity is the incident severity", + "type": "number", + "format": "double", + "x-go-package": "github.com/demisto/server/domain" + }, + "ShardedFields": { + "type": "object", + "title": "ShardedFields ...", + "properties": { + "ShardID": { + "type": "integer", + "format": "int64" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "StatsQueryError": { + "title": "StatsQueryError - Describe the error returned related to a specific widget cell in a dashboard." + }, + "StatsQueryResponse": { + "type": "object", + "title": "StatsQueryResponse - Describe the data returned related to a specific widget cell in a dashboard.", + "properties": { + "accountErrors": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "AccountErrors" + }, + "data": { + "description": "data array or object describing the statistics data based on type.", + "type": "object", + "x-go-name": "Data" + }, + "totalAccounts": { + "type": "integer", + "format": "int64", + "x-go-name": "TotalAccounts" + }, + "widgetCellId": { + "type": "string", + "x-go-name": "WidgetCellID" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "StatsQueryResponseWithError": { + "type": "object", + "title": "StatsQueryResponseWithError - Describe the data returned related to a specific widget cell in a dashboard including errors.", + "properties": { + "StatsQueryError": { + "$ref": "#/definitions/StatsQueryError" + }, + "statsQueryResponse": { + "$ref": "#/definitions/StatsQueryResponse" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "StatsResponseWithReferenceLine": { + "type": "object", + "title": "StatsResponseWithReferenceLine - Describe the data returned related to a specific Line/Column chart widget cell in a dashboard.", + "properties": { + "groups": { + "$ref": "#/definitions/Groups" + }, + "referenceLineY": { + "type": "number", + "format": "double", + "x-go-name": "ReferenceLineY" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "StatsScatterResponse": { + "type": "object", + "title": "StatsScatterResponse - Represent a scatter response from statistics.", + "properties": { + "data": { + "$ref": "#/definitions/Groups" + }, + "range": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "Range" + }, + "rangeX": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "RangeX" + }, + "rangeY": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "RangeY" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "StatsTextResponse": { + "type": "object", + "title": "StatsTextResponse - Describe the data returned related to a specific text widget cell in a dashboard.", + "properties": { + "groups": { + "$ref": "#/definitions/Groups" + }, + "text": { + "description": "Describe the complete text for the text widget, after placeholders injection.", + "type": "string", + "x-go-name": "Text" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "StatsTrendsResponse": { + "description": "StatsTrendsResponse - Represent a trend response from statistics. Provides information about\nthe current value and the previous value based on the period.", + "type": "object", + "properties": { + "currSum": { + "type": "integer", + "format": "int64", + "x-go-name": "CurrSum" + }, + "prevSum": { + "type": "integer", + "format": "int64", + "x-go-name": "PrevSum" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "System": { + "description": "System - URL stands for ip or hostname", + "type": "object", + "properties": { + "agent": { + "$ref": "#/definitions/SystemAgent" + }, + "arch": { + "type": "string", + "x-go-name": "Arch" + }, + "ciphers": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Ciphers" + }, + "credentials": { + "type": "string", + "x-go-name": "CredentialsName" + }, + "engineId": { + "type": "string", + "x-go-name": "EngineID" + }, + "host": { + "type": "string", + "x-go-name": "Host" + }, + "integrationinstanceid": { + "type": "string", + "x-go-name": "IntegrationInstanceID" + }, + "issharedagent": { + "type": "boolean", + "x-go-name": "IsSharedAgent" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "os": { + "type": "string", + "x-go-name": "OS" + }, + "password": { + "type": "string", + "x-go-name": "Password" + }, + "servicesID": { + "type": "string", + "x-go-name": "ServicesID" + }, + "smb": { + "type": "integer", + "format": "int64", + "x-go-name": "SMBv" + }, + "smbport": { + "type": "integer", + "format": "uint16", + "x-go-name": "SMBPort" + }, + "sshkey": { + "type": "string", + "x-go-name": "SSHKey" + }, + "sshport": { + "type": "integer", + "format": "uint16", + "x-go-name": "SSHPort" + }, + "terminalOptions": { + "$ref": "#/definitions/TerminalOptions" + }, + "user": { + "type": "string", + "x-go-name": "User" + }, + "workgroup": { + "type": "string", + "x-go-name": "Workgroup" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "SystemAgent": { + "description": "SystemAgent - represents agent status and holds server context", + "type": "object", + "properties": { + "servercontext": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8" + }, + "x-go-name": "ServerContext" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Task": { + "description": "Task is the basic task in the task repository that can be associated to an incident via playbook", + "type": "object", + "properties": { + "brand": { + "type": "string", + "x-go-name": "Brand" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "clonedFrom": { + "type": "string", + "x-go-name": "ClonedFrom" + }, + "comment": { + "type": "string", + "x-go-name": "Comment" + }, + "conditions": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "ConditionnKeys" + }, + "description": { + "type": "string", + "x-go-name": "Description" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "isCommand": { + "type": "boolean", + "x-go-name": "IsCommand" + }, + "isLocked": { + "type": "boolean", + "x-go-name": "IsLocked" + }, + "isTitleTask": { + "type": "boolean", + "x-go-name": "IsTitleTask" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "playbookId": { + "type": "string", + "x-go-name": "PlaybookID" + }, + "playbookName": { + "type": "string", + "x-go-name": "PlaybookName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "scriptId": { + "type": "string", + "x-go-name": "AutomationScriptID" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "type": { + "$ref": "#/definitions/TaskType" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "TaskCondition": { + "description": "TaskCondition - contains a condition and a corresponding label\nif the condition satisfied - its label is taken as the next task(s) input (e.i. the label on the edge)", + "type": "object", + "properties": { + "condition": { + "type": "array", + "items": { + "$ref": "#/definitions/ArgFilter" + }, + "x-go-name": "Condition" + }, + "label": { + "type": "string", + "x-go-name": "Label" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "TaskLoop": { + "description": "TaskLoop contains loop details", + "type": "object", + "properties": { + "brand": { + "type": "string", + "x-go-name": "Brand" + }, + "builtinCondition": { + "type": "array", + "items": { + "$ref": "#/definitions/ArgFilter" + }, + "x-go-name": "BuiltInCondition" + }, + "exitCondition": { + "type": "string", + "x-go-name": "ExitCondition" + }, + "forEach": { + "type": "boolean", + "x-go-name": "ForEach" + }, + "isCommand": { + "type": "boolean", + "x-go-name": "IsCommand" + }, + "max": { + "type": "integer", + "format": "int64", + "x-go-name": "MaxIterations" + }, + "scriptArguments": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "ScriptArguments" + }, + "scriptId": { + "type": "string", + "x-go-name": "AutomationScriptID" + }, + "scriptName": { + "type": "string", + "x-go-name": "AutomationScriptName" + }, + "wait": { + "type": "integer", + "format": "int64", + "x-go-name": "WaitBetweenIterations" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "TaskState": { + "description": "TaskState indicates the state of the task during the incident/investigation execution", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "TaskType": { + "description": "TaskType is the Task in the playbook context as a node", + "type": "string", + "x-go-package": "github.com/demisto/server/domain" + }, + "TaskView": { + "description": "TaskView represents the view in client of the tasks graph", + "type": "object", + "x-go-package": "github.com/demisto/server/domain" + }, + "TermLocationMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Locations" + }, + "x-go-package": "github.com/blevesearch/bleve/v2/search" + }, + "TerminalOptions": { + "description": "TerminalOptions - terminal options to use in case of using pty", + "type": "object", + "properties": { + "Echo": { + "type": "integer", + "format": "uint32" + }, + "Terminal": { + "type": "boolean" + }, + "TerminalHeight": { + "type": "integer", + "format": "int64" + }, + "TerminalType": { + "type": "string" + }, + "TerminalWidth": { + "type": "integer", + "format": "int64" + }, + "TyISpeed": { + "type": "integer", + "format": "uint32" + }, + "TyOSpeed": { + "type": "integer", + "format": "uint32" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "TimerAction": { + "type": "string", + "title": "TimerAction ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "TimerTrigger": { + "type": "object", + "title": "TimerTrigger ...", + "properties": { + "action": { + "$ref": "#/definitions/TimerAction" + }, + "fieldName": { + "type": "string", + "x-go-name": "FieldName" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "TransformerOperatorID": { + "type": "string", + "title": "TransformerOperatorID ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "TypeAndKind": { + "description": "TypeAndKind - corresponding incident type \u0026 layout kind (details, edit, close, mobile...)", + "type": "object", + "properties": { + "kind": { + "type": "string", + "x-go-name": "Kind" + }, + "typeId": { + "type": "string", + "x-go-name": "TypeID" + } + }, + "x-go-package": "github.com/demisto/server/olddomain" + }, + "UnclassifiedCases": { + "type": "object", + "title": "UnclassifiedCases ...", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Unit42Indicator": { + "type": "object", + "title": "Unit42Indicator ...", + "additionalProperties": { + "type": "object" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Unit42IndicatorLookup": { + "description": "Unit42IndicatorLookup - indicator lookup result from Unit42 intel", + "type": "object", + "properties": { + "indicator": { + "$ref": "#/definitions/Unit42Indicator" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Unit42SampleSearchFilter": { + "type": "object", + "title": "Unit42SampleSearchFilter ...", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Fields" + }, + "filterobjectquery": { + "type": "string", + "x-go-name": "FilterObjectQuery" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "scope": { + "type": "string", + "x-go-name": "Scope" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "trim_events": { + "type": "integer", + "format": "int64", + "x-go-name": "TrimEvents" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "Unit42SearchFilter": { + "type": "object", + "title": "Unit42SearchFilter ...", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "fields": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Fields" + }, + "filterobjectquery": { + "type": "string", + "x-go-name": "FilterObjectQuery" + }, + "fromDate": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDate" + }, + "fromDateLicense": { + "type": "string", + "format": "date-time", + "x-go-name": "FromDateLicenseVal" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "period": { + "$ref": "#/definitions/Period" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "timeFrame": { + "$ref": "#/definitions/Duration" + }, + "toDate": { + "type": "string", + "format": "date-time", + "x-go-name": "ToDate" + }, + "trim_events": { + "type": "integer", + "format": "int64", + "x-go-name": "TrimEvents" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "Unit42Session": { + "type": "object", + "title": "Unit42Session - a unit42 session connected to a sample.", + "additionalProperties": { + "type": "object" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "UpdateDataBatch": { + "type": "object", + "title": "UpdateDataBatch ...", + "properties": { + "CustomFields": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "all": { + "type": "boolean", + "x-go-name": "All" + }, + "closeNotes": { + "type": "string", + "x-go-name": "CloseNotes" + }, + "closeReason": { + "type": "string", + "x-go-name": "CloseReason" + }, + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Columns" + }, + "data": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Data" + }, + "filter": { + "$ref": "#/definitions/IncidentFilter" + }, + "force": { + "type": "boolean", + "x-go-name": "Force" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "IDs" + }, + "line": { + "type": "string", + "x-go-name": "Line" + }, + "originalIncidentId": { + "type": "string", + "x-go-name": "OriginalIncidentID" + }, + "overrideInvestigation": { + "type": "boolean", + "x-go-name": "OverrideInvestigation" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "UpdateIndicatorBatch": { + "description": "UpdateIndicatorBatch - edit bulk indicators", + "type": "object", + "properties": { + "all": { + "type": "boolean", + "x-go-name": "All" + }, + "data": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Data" + }, + "filter": { + "$ref": "#/definitions/IndicatorFilter" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "IDs" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "UpdateResponse": { + "type": "object", + "title": "UpdateResponse ...", + "properties": { + "notUpdated": { + "type": "integer", + "format": "int64", + "x-go-name": "NotUpdated" + }, + "updatedIds": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "UpdatedIds" + }, + "uppdated": { + "type": "integer", + "format": "int64", + "x-go-name": "Updated" + } + }, + "x-go-package": "github.com/demisto/server/repo/entities" + }, + "Version": { + "type": "object", + "title": "Version represents a version.", + "properties": { + "Digits": { + "description": "WARNING: when adding new attributes or changing the names\nof the existing ones, remember to add support in UnmarshalJSON\nfor items that were exported by msgpack.", + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "Label": { + "type": "string" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "VersionedCommit": { + "type": "object", + "title": "VersionedCommit holds the commit info.", + "properties": { + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "WhitelistedIndicator": { + "description": "WhitelistedIndicator Excluded indicator", + "type": "object", + "properties": { + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "locked": { + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "reason": { + "type": "string", + "x-go-name": "Reason" + }, + "reputations": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Reputations" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "type": { + "type": "string", + "x-go-name": "Type" + }, + "user": { + "type": "string", + "x-go-name": "User" + }, + "value": { + "type": "string", + "x-go-name": "Value" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "whitelistTime": { + "type": "string", + "format": "date-time", + "x-go-name": "WhitelistTime" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "Widget": { + "description": "Widget describe a widget component used to get statistics requests, based on parameters such as\ndataType and widgetType. A widget can be a part of widgets collection inside a dashboard.", + "type": "object", + "required": [ + "name", + "widgetType" + ], + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "accounts": { + "description": "Accounts list of accounts to query the widget data from", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "Accounts" + }, + "cacheVersn": { + "type": "integer", + "format": "int64", + "x-go-name": "CacheVersn" + }, + "category": { + "description": "Category the widget is related to. Used to display in widget library under category or dataType if empty.", + "type": "string", + "x-go-name": "Category" + }, + "commitMessage": { + "type": "string", + "x-go-name": "CommitMessage" + }, + "dataType": { + "description": "Data type of the widget. Describes what data does the widget query. supporting data types \"incidents\",\"messages\",\"system\",\"entries\",\"tasks\", \"audit\".", + "type": "string", + "x-go-name": "DataType" + }, + "dateRange": { + "$ref": "#/definitions/DateRange" + }, + "definition": { + "$ref": "#/definitions/GenericObjectDefinition" + }, + "definitionId": { + "type": "string", + "x-go-name": "DefinitionID" + }, + "description": { + "description": "The description of the widget's usage and data representation.", + "type": "string", + "x-go-name": "Description" + }, + "fromServerVersion": { + "$ref": "#/definitions/Version" + }, + "highlight": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "Highlight" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "isPredefined": { + "description": "Is the widget a system widget.", + "type": "boolean", + "x-go-name": "IsPredefined" + }, + "itemVersion": { + "$ref": "#/definitions/Version" + }, + "locked": { + "description": "Is the widget locked for editing.", + "type": "boolean", + "x-go-name": "Locked" + }, + "modified": { + "type": "string", + "format": "date-time", + "x-go-name": "Modified" + }, + "name": { + "description": "Default name of the widget.", + "type": "string", + "x-go-name": "Name" + }, + "numericId": { + "type": "integer", + "format": "int64", + "x-go-name": "NumericID" + }, + "packID": { + "type": "string", + "x-go-name": "PackID" + }, + "packPropagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PackPropagationLabels" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "params": { + "description": "Additional parameters for this widget, depends on widget type and data.", + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "AdditionalParams" + }, + "prevName": { + "description": "The previous name of the widget.", + "type": "string", + "x-go-name": "PrevName" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "propagationLabels": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "PropagationLabels" + }, + "query": { + "description": "Query to search on the dataType.", + "type": "string", + "x-go-name": "Query" + }, + "remote": { + "type": "boolean", + "x-go-name": "Remote" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "shouldCommit": { + "type": "boolean", + "x-go-name": "ShouldCommit" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "skipAggregateAccounts": { + "description": "SkipAggregateAccounts flag that indicates whether to skip aggregate accounts results", + "type": "boolean", + "x-go-name": "SkipAggregateAccounts" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "sortValues": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SortValues" + }, + "toServerVersion": { + "$ref": "#/definitions/Version" + }, + "vcShouldIgnore": { + "type": "boolean", + "x-go-name": "VCShouldIgnore" + }, + "vcShouldKeepItemLegacyProdMachine": { + "type": "boolean", + "x-go-name": "VCShouldKeepItemLegacyProdMachine" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + }, + "widgetType": { + "description": "Widget type describes how does the widget should recieve the data, and display it. Supporting types: \"bar\", \"column\", \"pie\", \"list\", \"number\", \"trend\", \"text\", \"duration\", \"image\", \"line\", and \"table\".", + "type": "string", + "x-go-name": "WidgetType" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "WidgetCell": { + "type": "object", + "title": "WidgetCell ...", + "properties": { + "forceRange": { + "type": "boolean", + "x-go-name": "ForceRange" + }, + "h": { + "type": "integer", + "format": "int64", + "x-go-name": "Height" + }, + "i": { + "type": "string", + "x-go-name": "Key" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "reflectDimensions": { + "type": "boolean", + "x-go-name": "ReflectDimensions" + }, + "w": { + "type": "integer", + "format": "int64", + "x-go-name": "Width" + }, + "widget": { + "$ref": "#/definitions/Widget" + }, + "x": { + "type": "integer", + "format": "int64", + "x-go-name": "Xs" + }, + "y": { + "type": "integer", + "format": "int64", + "x-go-name": "Ys" + } + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "WidgetCells": { + "type": "array", + "title": "WidgetCells ...", + "items": { + "$ref": "#/definitions/WidgetCell" + }, + "x-go-package": "github.com/demisto/server/domain" + }, + "WithCustomFields": { + "type": "object", + "title": "WithCustomFields ...", + "x-go-package": "github.com/demisto/server/domain" + }, + "auditResult": { + "type": "object", + "properties": { + "audits": { + "type": "array", + "items": { + "$ref": "#/definitions/Audit" + }, + "x-go-name": "Audits" + }, + "total": { + "type": "integer", + "format": "int64", + "x-go-name": "Total" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "automationScriptFilter": { + "description": "automationScriptFilter is a general filter that fetches entities using a query string query using the Query value", + "type": "object", + "properties": { + "Cache": { + "description": "Cache of join functions", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "ignoreWorkers": { + "description": "Do not use workers mechanism while searching bleve", + "type": "boolean", + "x-go-name": "IgnoreWorkers" + }, + "page": { + "description": "0-based page", + "type": "integer", + "format": "int64", + "x-go-name": "Page" + }, + "query": { + "type": "string", + "x-go-name": "Query" + }, + "searchAfter": { + "description": "Efficient next page, pass max sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfter" + }, + "searchAfterElastic": { + "description": "Efficient next page, pass max ES sort value from previous page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchAfterElastic" + }, + "searchAfterMap": { + "description": "Map accounts search after values - stores next page sort values per account.\nThere is no need to store searchBeforeMap as [current page searchBefore] equals to [prev page searchAfter]\nMore, there is no way to generate correct searchBefore from current page as some tenants may not appear at all.\nThe map is relevant in proxy mode and used by tenants, each tenant extracts the searchAfter keys from the map.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "x-go-name": "SearchAfterMap" + }, + "searchAfterMapOrder": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "x-go-name": "SearchAfterMapOrder" + }, + "searchBefore": { + "description": "Efficient prev page, pass min sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBefore" + }, + "searchBeforeElastic": { + "description": "Efficient prev page, pass min ES sort value from next page", + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "SearchBeforeElastic" + }, + "size": { + "description": "Size is limited to 1000, if not passed it defaults to 0, and no results will return", + "type": "integer", + "format": "int64", + "x-go-name": "Size" + }, + "sort": { + "description": "The sort order", + "type": "array", + "items": { + "$ref": "#/definitions/Order" + }, + "x-go-name": "Sort" + }, + "stripContext": { + "type": "boolean", + "x-go-name": "StripContext" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "automationScriptFilterWrapper": { + "type": "object", + "title": "automationScriptFilterWrapper ...", + "properties": { + "filter": { + "$ref": "#/definitions/GenericStringFilter" + }, + "savePassword": { + "type": "boolean", + "x-go-name": "StorePassword" + }, + "script": { + "$ref": "#/definitions/AutomationScript" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "automationScriptResult": { + "type": "object", + "title": "automationScriptResult ...", + "properties": { + "pythonEnabled": { + "type": "boolean", + "x-go-name": "PythonEnabled" + }, + "scripts": { + "type": "array", + "items": { + "$ref": "#/definitions/ScriptAPI" + }, + "x-go-name": "Scripts" + }, + "selectedScript": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "x-go-name": "SelectedScript" + }, + "suggestions": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "containersInfo": { + "description": "Info - holds all containers info", + "type": "object", + "properties": { + "all": { + "type": "integer", + "format": "int64", + "x-go-name": "All" + }, + "inactive": { + "type": "integer", + "format": "int64", + "x-go-name": "Inactive" + }, + "running": { + "type": "integer", + "format": "int64", + "x-go-name": "Running" + } + }, + "x-go-name": "Info", + "x-go-package": "github.com/demisto/server/services/containers/containersInfo" + }, + "deleteEvidence": { + "type": "object", + "properties": { + "evidenceID": { + "type": "string", + "x-go-name": "EvidenceID" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "evidencesFilterWrapper": { + "type": "object", + "properties": { + "filter": { + "$ref": "#/definitions/GenericStringDateFilter" + }, + "incidentID": { + "type": "string", + "x-go-name": "IncidentID" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "genericIndicatorUpdateBatch": { + "type": "object", + "properties": { + "all": { + "type": "boolean", + "x-go-name": "All" + }, + "columns": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Columns" + }, + "doNotWhitelist": { + "type": "boolean", + "x-go-name": "DoNotWhitelist" + }, + "filter": { + "$ref": "#/definitions/IndicatorFilter" + }, + "ids": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "IDs" + }, + "reason": { + "type": "string", + "x-go-name": "Reason" + }, + "reputations": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Reputations" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "genericObjectTypesWithError": { + "type": "object", + "properties": { + "error": { + "type": "string", + "x-go-name": "Error" + }, + "types": { + "type": "array", + "items": { + "$ref": "#/definitions/GenericObjectType" + }, + "x-go-name": "GenericObjectTypes" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "idVersion": {}, + "incidentFieldsWithErrors": { + "type": "object", + "properties": { + "error": { + "type": "string", + "x-go-name": "Error" + }, + "incidentFields": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentField" + }, + "x-go-name": "IncidentFields" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "incidentTypesWithErrors": { + "type": "object", + "properties": { + "error": { + "type": "string", + "x-go-name": "Error" + }, + "incidentTypes": { + "type": "array", + "items": { + "$ref": "#/definitions/IncidentType" + }, + "x-go-name": "IncidentTypes" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "indicatorContext": { + "type": "object", + "properties": { + "entryId": { + "type": "string", + "x-go-name": "EntryID" + }, + "indicator": { + "$ref": "#/definitions/IocObject" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + }, + "manually": { + "type": "boolean", + "x-go-name": "Manually" + }, + "seenNow": { + "type": "boolean", + "x-go-name": "SeenNow" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "invPlaybookAssignee": { + "type": "object", + "properties": { + "assignee": { + "type": "string", + "x-go-name": "Assignee" + }, + "inTaskID": { + "type": "string", + "x-go-name": "TaskID" + }, + "invId": { + "type": "string", + "x-go-name": "ID" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Version" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "invPlaybookDue": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date-time", + "x-go-name": "Date" + }, + "inTaskID": { + "type": "string", + "x-go-name": "TaskID" + }, + "invId": { + "type": "string", + "x-go-name": "ID" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Version" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "invTaskInfo": { + "type": "object", + "properties": { + "args": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "Args" + }, + "comment": { + "type": "string", + "x-go-name": "Comment" + }, + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/TaskCondition" + }, + "x-go-name": "Conditions" + }, + "inTaskID": { + "type": "string", + "x-go-name": "TaskID" + }, + "input": { + "type": "string", + "x-go-name": "Input" + }, + "invId": { + "type": "string", + "x-go-name": "ID" + }, + "loopArgs": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "LoopArgs" + }, + "loopCondition": { + "type": "array", + "items": { + "$ref": "#/definitions/ArgFilter" + }, + "x-go-name": "LoopCondition" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Version" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "playbookWithWarnings": { + "type": "object", + "properties": { + "playbook": { + "$ref": "#/definitions/Playbook" + }, + "warnings": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Warnings" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "tagsFieldValues": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Data" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "updateEntry": { + "type": "object", + "properties": { + "args": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AdvanceArg" + }, + "x-go-name": "Args" + }, + "data": { + "type": "string", + "x-go-name": "Data" + }, + "id": { + "type": "string", + "x-go-name": "ID" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + }, + "markdown": { + "type": "boolean", + "x-go-name": "Markdown" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "updateEntryTags": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-go-name": "ID" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + }, + "primaryTerm": { + "type": "integer", + "format": "int64", + "x-go-name": "PrimaryTerm" + }, + "sequenceNumber": { + "type": "integer", + "format": "int64", + "x-go-name": "SeqNum" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Tags" + }, + "version": { + "type": "integer", + "format": "int64", + "x-go-name": "Versn" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "updateIndicatorReputationData": { + "type": "object", + "properties": { + "InvestigationId": { + "type": "string", + "x-go-name": "InvID" + }, + "doNotWhitelist": { + "type": "boolean", + "x-go-name": "DoNotWhitelist" + }, + "entryId": { + "type": "string", + "x-go-name": "EntryID" + }, + "manualScore": { + "type": "boolean", + "x-go-name": "ManualScore" + }, + "reason": { + "type": "string", + "x-go-name": "Reason" + }, + "reputation": { + "type": "integer", + "format": "int64", + "x-go-name": "Reputation" + }, + "reputations": { + "type": "array", + "items": { + "type": "string" + }, + "x-go-name": "Reputations" + }, + "value": { + "type": "string", + "x-go-name": "Value" + } + }, + "x-go-package": "github.com/demisto/server/web" + }, + "uploadedEntry": { + "type": "object", + "properties": { + "contents": { + "type": "string", + "x-go-name": "Contents" + }, + "format": { + "type": "string", + "x-go-name": "ContentsFormat" + }, + "investigationId": { + "type": "string", + "x-go-name": "InvestigationID" + } + }, + "x-go-package": "github.com/demisto/server/web" + } + }, + "securityDefinitions": { + "api_key": { + "type": "apiKey", + "name": "Authorization", + "in": "header" + } + }, + "security": [ + { + "api_key": [] + } + ] +} \ No newline at end of file