From 5817cedae9b165a5820cbdc546be5e78dcc807d4 Mon Sep 17 00:00:00 2001
From: Slack API Ref Buildbot <buildbot@slack-api-ref.com>
Date: Fri, 15 Mar 2024 22:28:47 +0000
Subject: [PATCH] Updated from Slack docs, 2024/03/15

---
 methods/apps/apps.datastore.count.json | 80 ++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)
 create mode 100644 methods/apps/apps.datastore.count.json

diff --git a/methods/apps/apps.datastore.count.json b/methods/apps/apps.datastore.count.json
new file mode 100644
index 00000000..b9eaa59e
--- /dev/null
+++ b/methods/apps/apps.datastore.count.json
@@ -0,0 +1,80 @@
+{
+  "group": "apps",
+  "name": "apps.datastore.count",
+  "deprecated": false,
+  "desc": "Count the number of items in a datastore that match a query",
+  "args": {
+    "datastore": {
+      "required": true,
+      "desc": "Name of the datastore.",
+      "type": "string"
+    },
+    "app_id": {
+      "required": false,
+      "desc": "Required if calling with user token."
+    },
+    "expression": {
+      "required": false,
+      "example": "#artist = :artist_name",
+      "desc": "A query filter expression https://api.slack.com/future/datastores.",
+      "type": "string"
+    },
+    "expression_attributes": {
+      "required": false,
+      "example": "{ \"#artist\": \"artist\" }",
+      "desc": "A map of attributes referenced in expression.",
+      "type": "object"
+    },
+    "expression_values": {
+      "required": false,
+      "example": "{ \":artist_name\": \"Fred Rogers\" }",
+      "desc": "A map of values referenced in expression.",
+      "type": "object"
+    }
+  },
+  "response": {
+    "examples": [
+      "{\n    \"ok\": true,\n    \"datastore\": \"good_tunes\",\n    \"count\": 2\n}",
+      "{\n    \"ok\": false,\n    \"error\": \"datastore_error\",\n    \"errors\": [\n        {\n            \"code\": \"datastore_config_not_found\",\n            \"message\": \"The datastore configuration could not be found\",\n            \"pointer\": \"/datastores\"\n        }\n    ]\n}"
+    ]
+  },
+  "errors": {
+    "invalid_arguments": "The method was either called with invalid arguments or some detail about the arguments passed is invalid, which is more likely when using complex arguments like blocks or attachments.",
+    "invalid_datastore": "The provided datastore is invalid.",
+    "invalid_auth": "Some aspect of authentication cannot be validated. Either the provided token is invalid or the request originates from an IP address disallowed from making the request.",
+    "app_not_hosted": "The app developer is not using a Slack-hosted environment. App datastores are exclusively available for Slack-hosted apps.",
+    "datastore_error": "Datastore error.",
+    "access_denied": "Access to a resource specified in the request is denied.",
+    "invalid_app_id": "The app_id provided is not valid for team and user.",
+    "free_team_not_allowed": "Datastore query not allowed on a free team.",
+    "team_quota_exceeded": "Total number of requests exceeded team quota.",
+    "datastore_migration_in_progress": "The datastore is currently unavailable due to an in progress Enterprise Grid migration.",
+    "account_inactive": "Authentication token is for a deleted user or workspace when using a bot token.",
+    "deprecated_endpoint": "The endpoint has been deprecated.",
+    "ekm_access_denied": "Administrators have suspended the ability to post a message.",
+    "enterprise_is_restricted": "The method cannot be called from an Enterprise.",
+    "is_bot": "This method cannot be called by a legacy bot.",
+    "method_deprecated": "The method has been deprecated.",
+    "missing_scope": "The token used is not granted the specific scope permissions required to complete this request.",
+    "not_allowed_token_type": "The token type used in this request is not allowed.",
+    "not_authed": "No authentication token provided.",
+    "no_permission": "The workspace token used in this request does not have the permissions necessary to complete the request. Make sure your app is a member of the conversation it's attempting to post a message to.",
+    "org_login_required": "The workspace is undergoing an enterprise migration and will not be available until migration is complete.",
+    "token_expired": "Authentication token has expired.",
+    "token_revoked": "Authentication token is for a deleted user or workspace or the app has been removed when using a user token.",
+    "two_factor_setup_required": "Two factor setup is required.",
+    "accesslimited": "Access to this method is limited on the current network.",
+    "fatal_error": "The server could not complete your operation(s) without encountering a catastrophic error. It's possible some aspect of the operation succeeded before the error was raised.",
+    "internal_error": "The server could not complete your operation(s) without encountering an error, likely due to a transient issue on our end. It's possible some aspect of the operation succeeded before the error was raised.",
+    "invalid_arg_name": "The method was passed an argument whose name falls outside the bounds of accepted or expected values. This includes very long names and names with non-alphanumeric characters other than _. If you get this error, it is typically an indication that you have made a very malformed API call.",
+    "invalid_array_arg": "The method was passed an array as an argument. Please only input valid strings.",
+    "invalid_charset": "The method was called via a POST request, but the charset specified in the Content-Type header was invalid. Valid charset names are: utf-8 iso-8859-1.",
+    "invalid_form_data": "The method was called via a POST request with Content-Type application/x-www-form-urlencoded or multipart/form-data, but the form data was either missing or syntactically invalid.",
+    "invalid_post_type": "The method was called via a POST request, but the specified Content-Type was invalid. Valid types are: application/json application/x-www-form-urlencoded multipart/form-data text/plain.",
+    "missing_post_type": "The method was called via a POST request and included a data payload, but the request did not include a Content-Type header.",
+    "ratelimited": "The request has been ratelimited. Refer to the Retry-After header for when to retry the request.",
+    "request_timeout": "The method was called via a POST request, but the POST data was either missing or truncated.",
+    "service_unavailable": "The service is temporarily unavailable.",
+    "team_added_to_org": "The workspace associated with your request is currently undergoing migration to an Enterprise Organization. Web API and other platform operations will be intermittently unavailable until the transition is complete."
+  }
+}
\ No newline at end of file