diff --git a/annofabapi/models.py b/annofabapi/models.py index 770c2eab..802205ac 100644 --- a/annofabapi/models.py +++ b/annofabapi/models.py @@ -2745,20 +2745,12 @@ class OrganizationMemberStatus(Enum): 組織ID。[値の制約についてはこちら。](#section/API-Convention/APIID) * plugin_id: str プラグインID。[値の制約についてはこちら。](#section/API-Convention/APIID) -* plugin_type: PluginType - * plugin_name: str プラグインの名前です。 プラグイン一覧や、プロジェクトで使うプラグインを選ぶときなどに表示されます。 * description: str プラグインの説明です。 プラグイン一覧や、プロジェクトで使うプラグインを選ぶときなどに表示されます。 -* annotation_editor_url: str - カスタムアノテーションエディタでタスクを開くための URL です。 プラグインを使用するプロジェクトのタスク一覧などで使用されます。 プラグイン種別がカスタムアノテーションエディタの場合のみ有効です。 この URL には、タスクを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` * `{taskId}` 以下のパラメーターは任意で指定します。 * `{inputDataId}`: アノテーション一覧などから、特定の入力データにフォーカスした状態でタスクを開くときなどに指定します。 * `{annotationId}`: アノテーション一覧などから、特定のアノテーションにフォーカスした状態でタスクを開くときなどに指定します。 -* task_assignment_url: str - 「カスタムタスク割当API」のURLです。 プラグイン種別がカスタムタスク割当の場合のみ有効です。 #### カスタムタスク割当APIについて。 * 独自のアルゴリズムで作業者にタスクを割当するAPIです。 * AnnoFabから提供されるものではなく、第三者 (ユーザー様) が用意します。 * 作業者がタスク一覧やアノテーションエディタのタスク取得ボタンを押すと、指定したURLに複数の情報 (※1) と共にHTTPリクエスト (POST) が送られます。 * カスタムタスク割当APIでは、AnnoFabで提供しているAPI (※2) を使用して作業者にタスクを割当してください。 * タスクの割当に成功した場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: 割当した単一のタスク * ステータスコード: 200 * 作業者に割当できるタスクがない場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: `{\"errors\": [{\"error_code\": \"MISSING_RESOURCE\"}]}` * ステータスコード: 404 * 作業者の認証トークンの期限が切れている場合があります。その場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: `{\"errors\": [{\"error_code\": \"EXPIRED_TOKEN\"}]}` * ステータスコード: 401 #### Preflightリクエストについて。 * AnnoFabからカスタムタスク割当APIへCross-OriginなHTTPリクエストを送信するより前に、ブラウザの仕様により「Preflightリクエスト」と呼ばれるHTTPリクエストが送られます。 * カスタムタスク割当を利用するためには、カスタムタスク割当APIとは別に「Preflightリクエスト対応API」を用意する必要があります。 * 以下の要件を満たす「Preflightリクエスト対応API」を用意してください。 * URL: カスタムタスク割当APIと同じURL * HTTPメソッド: OPTIONS * レスポンスヘッダ: * `Access-Control-Allow-Origin: https://annofab.com` * `Access-Control-Allow-Headers: Content-Type` * レスポンスボディ: 空(から) * ステータスコード: 200 ※1 以下の情報が送られます。 * HTTPボディ (JSON形式) * `authorization_token` : 作業者の認証トークン。AnnoFabのAPIを利用する際に使用します。 * `project_id` : タスクの割当リクエストが行われたプロジェクトのID。 * `phase` : 作業者が割当を要求したタスクフェーズ。このフェーズのタスクを割当してください。 ※2 例えば以下のAPIがあります。(詳しい情報はAPIドキュメントを参照してください) * `getMyAccount` : 作業者のアカウント情報を取得できます。 * `getTasks` : プロジェクトのタスクを取得できます。 * `assignTasks` : 作業者にタスクを割当することができます。 -* specs_url: str - カスタムアノテーション仕様画面の URL です。 プラグイン種別がカスタムアノテーション仕様の場合のみ有効です。 この URL には、プロジェクトを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` -* compatible_input_data_types: List[InputDataType] - プラグインが対応している入力データです。 プラグイン種別がカスタムアノテーションエディタ、またはカスタムアノテーション仕様の場合のみ有効です。 +* detail: PluginDetail + * created_datetime: str * updated_datetime: str @@ -2852,16 +2844,63 @@ class OrganizationMemberStatus(Enum): """ +PluginDetail = Dict[str, Any] +""" +* `PluginDetailAnnotationEditor` - カスタムアノテーションエディタ用のプラグインを表します。 * `PluginDetailTaskAssignment` - カスタムタスク割当用のプラグインを表します。 * `PluginDetailAnnotationSpecs` - カスタムアノテーション仕様用のプラグインを表します。 -class PluginType(Enum): - """ - プラグイン種別。 * `custom_annotation_editor` - カスタムアノテーションエディタ用のプラグインを表します。 * `custom_task_assignment` - カスタムタスク割当用のプラグインを表します。 * `custom_specs` - カスタムアノテーション仕様用のプラグインを表します。 - """ +Kyes of Dict + +* url: str + カスタムアノテーション仕様画面の URL です。 プラグイン種別がカスタムアノテーション仕様の場合のみ有効です。 この URL には、プロジェクトを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` +* compatible_input_data_types: List[InputDataType] + プラグインが対応している入力データです。 プラグイン種別がカスタムアノテーションエディタ、またはカスタムアノテーション仕様の場合のみ有効です。 +* type: str + `AnnotationSpecs` [詳しくはこちら](#section/API-Convention/API-_type) + +""" + +PluginDetailAnnotationEditor = Dict[str, Any] +""" +カスタムアノテーションエディタ用のプラグインを表します。 + +Kyes of Dict + +* url: str + カスタムアノテーションエディタでタスクを開くための URL です。 プラグインを使用するプロジェクトのタスク一覧などで使用されます。 プラグイン種別がカスタムアノテーションエディタの場合のみ有効です。 この URL には、タスクを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` * `{taskId}` 以下のパラメーターは任意で指定します。 * `{inputDataId}`: アノテーション一覧などから、特定の入力データにフォーカスした状態でタスクを開くときなどに指定します。 * `{annotationId}`: アノテーション一覧などから、特定のアノテーションにフォーカスした状態でタスクを開くときなどに指定します。 +* compatible_input_data_types: List[InputDataType] + プラグインが対応している入力データです。 プラグイン種別がカスタムアノテーションエディタ、またはカスタムアノテーション仕様の場合のみ有効です。 +* type: str + `AnnotationEditor` [詳しくはこちら](#section/API-Convention/API-_type) - ANNOTATION_EDITOR = "custom_annotation_editor" - TASK_ASSIGNMENT = "custom_task_assignment" - SPECS = "custom_specs" +""" + +PluginDetailAnnotationSpecs = Dict[str, Any] +""" +カスタムアノテーション仕様用のプラグインを表します。 +Kyes of Dict + +* url: str + カスタムアノテーション仕様画面の URL です。 プラグイン種別がカスタムアノテーション仕様の場合のみ有効です。 この URL には、プロジェクトを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` +* compatible_input_data_types: List[InputDataType] + プラグインが対応している入力データです。 プラグイン種別がカスタムアノテーションエディタ、またはカスタムアノテーション仕様の場合のみ有効です。 +* type: str + `AnnotationSpecs` [詳しくはこちら](#section/API-Convention/API-_type) + +""" + +PluginDetailTaskAssignment = Dict[str, Any] +""" +カスタムタスク割当用のプラグインを表します。 + +Kyes of Dict + +* url: str + 「カスタムタスク割当API」のURLです。 プラグイン種別がカスタムタスク割当の場合のみ有効です。 #### カスタムタスク割当APIについて。 * 独自のアルゴリズムで作業者にタスクを割当するAPIです。 * AnnoFabから提供されるものではなく、第三者 (ユーザー様) が用意します。 * 作業者がタスク一覧やアノテーションエディタのタスク取得ボタンを押すと、指定したURLに複数の情報 (※1) と共にHTTPリクエスト (POST) が送られます。 * カスタムタスク割当APIでは、AnnoFabで提供しているAPI (※2) を使用して作業者にタスクを割当してください。 * タスクの割当に成功した場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: 割当した単一のタスク * ステータスコード: 200 * 作業者に割当できるタスクがない場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: `{\"errors\": [{\"error_code\": \"MISSING_RESOURCE\"}]}` * ステータスコード: 404 * 作業者の認証トークンの期限が切れている場合があります。その場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: `{\"errors\": [{\"error_code\": \"EXPIRED_TOKEN\"}]}` * ステータスコード: 401 #### Preflightリクエストについて。 * AnnoFabからカスタムタスク割当APIへCross-OriginなHTTPリクエストを送信するより前に、ブラウザの仕様により「Preflightリクエスト」と呼ばれるHTTPリクエストが送られます。 * カスタムタスク割当を利用するためには、カスタムタスク割当APIとは別に「Preflightリクエスト対応API」を用意する必要があります。 * 以下の要件を満たす「Preflightリクエスト対応API」を用意してください。 * URL: カスタムタスク割当APIと同じURL * HTTPメソッド: OPTIONS * レスポンスヘッダ: * `Access-Control-Allow-Origin: https://annofab.com` * `Access-Control-Allow-Headers: Content-Type` * レスポンスボディ: 空(から) * ステータスコード: 200 ※1 以下の情報が送られます。 * HTTPボディ (JSON形式) * `authorization_token` : 作業者の認証トークン。AnnoFabのAPIを利用する際に使用します。 * `project_id` : タスクの割当リクエストが行われたプロジェクトのID。 * `phase` : 作業者が割当を要求したタスクフェーズ。このフェーズのタスクを割当してください。 ※2 例えば以下のAPIがあります。(詳しい情報はAPIドキュメントを参照してください) * `getMyAccount` : 作業者のアカウント情報を取得できます。 * `getTasks` : プロジェクトのタスクを取得できます。 * `assignTasks` : 作業者にタスクを割当することができます。 +* type: str + `TaskAssignment` [詳しくはこちら](#section/API-Convention/API-_type) + +""" Point = Dict[str, Any] """ @@ -3480,20 +3519,12 @@ class ProjectStatus(Enum): Kyes of Dict -* plugin_type: PluginType - * plugin_name: str プラグインの名前です。 プラグイン一覧や、プロジェクトで使うプラグインを選ぶときなどに表示されます。 * description: str プラグインの説明です。 プラグイン一覧や、プロジェクトで使うプラグインを選ぶときなどに表示されます。 -* annotation_editor_url: str - カスタムアノテーションエディタでタスクを開くための URL です。 プラグインを使用するプロジェクトのタスク一覧などで使用されます。 プラグイン種別がカスタムアノテーションエディタの場合のみ有効です。 この URL には、タスクを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` * `{taskId}` 以下のパラメーターは任意で指定します。 * `{inputDataId}`: アノテーション一覧などから、特定の入力データにフォーカスした状態でタスクを開くときなどに指定します。 * `{annotationId}`: アノテーション一覧などから、特定のアノテーションにフォーカスした状態でタスクを開くときなどに指定します。 -* task_assignment_url: str - 「カスタムタスク割当API」のURLです。 プラグイン種別がカスタムタスク割当の場合のみ有効です。 #### カスタムタスク割当APIについて。 * 独自のアルゴリズムで作業者にタスクを割当するAPIです。 * AnnoFabから提供されるものではなく、第三者 (ユーザー様) が用意します。 * 作業者がタスク一覧やアノテーションエディタのタスク取得ボタンを押すと、指定したURLに複数の情報 (※1) と共にHTTPリクエスト (POST) が送られます。 * カスタムタスク割当APIでは、AnnoFabで提供しているAPI (※2) を使用して作業者にタスクを割当してください。 * タスクの割当に成功した場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: 割当した単一のタスク * ステータスコード: 200 * 作業者に割当できるタスクがない場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: `{\"errors\": [{\"error_code\": \"MISSING_RESOURCE\"}]}` * ステータスコード: 404 * 作業者の認証トークンの期限が切れている場合があります。その場合は以下のHTTPレスポンスを返却してください。 * レスポンスヘッダ: `Access-Control-Allow-Origin: https://annofab.com` * レスポンスボディ: `{\"errors\": [{\"error_code\": \"EXPIRED_TOKEN\"}]}` * ステータスコード: 401 #### Preflightリクエストについて。 * AnnoFabからカスタムタスク割当APIへCross-OriginなHTTPリクエストを送信するより前に、ブラウザの仕様により「Preflightリクエスト」と呼ばれるHTTPリクエストが送られます。 * カスタムタスク割当を利用するためには、カスタムタスク割当APIとは別に「Preflightリクエスト対応API」を用意する必要があります。 * 以下の要件を満たす「Preflightリクエスト対応API」を用意してください。 * URL: カスタムタスク割当APIと同じURL * HTTPメソッド: OPTIONS * レスポンスヘッダ: * `Access-Control-Allow-Origin: https://annofab.com` * `Access-Control-Allow-Headers: Content-Type` * レスポンスボディ: 空(から) * ステータスコード: 200 ※1 以下の情報が送られます。 * HTTPボディ (JSON形式) * `authorization_token` : 作業者の認証トークン。AnnoFabのAPIを利用する際に使用します。 * `project_id` : タスクの割当リクエストが行われたプロジェクトのID。 * `phase` : 作業者が割当を要求したタスクフェーズ。このフェーズのタスクを割当してください。 ※2 例えば以下のAPIがあります。(詳しい情報はAPIドキュメントを参照してください) * `getMyAccount` : 作業者のアカウント情報を取得できます。 * `getTasks` : プロジェクトのタスクを取得できます。 * `assignTasks` : 作業者にタスクを割当することができます。 -* specs_url: str - カスタムアノテーション仕様画面の URL です。 プラグイン種別がカスタムアノテーション仕様の場合のみ有効です。 この URL には、プロジェクトを特定するための以下のパラメータを必ず埋め込んでください。 * `{projectId}` -* compatible_input_data_types: List[InputDataType] - プラグインが対応している入力データです。 プラグイン種別がカスタムアノテーションエディタ、またはカスタムアノテーション仕様の場合のみ有効です。 +* detail: PluginDetail + * last_updated_datetime: str 新規作成時は未指定、更新時は必須(更新前の日時) diff --git a/generate/swagger/swagger-api-components.yaml b/generate/swagger/swagger-api-components.yaml index 849e0c09..82ae8fc3 100644 --- a/generate/swagger/swagger-api-components.yaml +++ b/generate/swagger/swagger-api-components.yaml @@ -627,8 +627,7 @@ components: required: - organization_id - plugin_id - - plugin_type - - compatible_input_data_types + - detail - created_datetime - updated_datetime properties: @@ -636,20 +635,12 @@ components: $ref: "#/components/schemas/OrganizationId" plugin_id: $ref: "#/components/schemas/PluginId" - plugin_type: - $ref: "#/components/schemas/PluginType" plugin_name: $ref: "#/components/schemas/PluginName" description: $ref: "#/components/schemas/PluginDescription" - annotation_editor_url: - $ref: "#/components/schemas/AnnotationEditorUrl" - task_assignment_url: - $ref: "#/components/schemas/TaskAssignmentUrl" - specs_url: - $ref: "#/components/schemas/AnnotationSpecsUrl" - compatible_input_data_types: - $ref: "#/components/schemas/PluginCompatibleInputDataTypes" + detail: + $ref: "#/components/schemas/PluginDetail" created_datetime: type: string format: date-time @@ -662,20 +653,12 @@ components: - plugin_type - compatible_input_data_types properties: - plugin_type: - $ref: "#/components/schemas/PluginType" plugin_name: $ref: "#/components/schemas/PluginName" description: $ref: "#/components/schemas/PluginDescription" - annotation_editor_url: - $ref: "#/components/schemas/AnnotationEditorUrl" - task_assignment_url: - $ref: "#/components/schemas/TaskAssignmentUrl" - specs_url: - $ref: "#/components/schemas/AnnotationSpecsUrl" - compatible_input_data_types: - $ref: "#/components/schemas/PluginCompatibleInputDataTypes" + detail: + $ref: "#/components/schemas/PluginDetail" last_updated_datetime: $ref: "#/components/schemas/LastUpdatedDatetime" PluginId: @@ -683,17 +666,6 @@ components: example: "12345678-abcd-1234-abcd-1234abcd5678" description: | プラグインID。[値の制約についてはこちら。](#section/API-Convention/APIID) - PluginType: - type: string - enum: - - custom_annotation_editor - - custom_task_assignment - - custom_specs - description: | - プラグイン種別。 - * `custom_annotation_editor` - カスタムアノテーションエディタ用のプラグインを表します。 - * `custom_task_assignment` - カスタムタスク割当用のプラグインを表します。 - * `custom_specs` - カスタムアノテーション仕様用のプラグインを表します。 PluginName: type: string example: "foo-bar" @@ -706,6 +678,62 @@ components: description: | プラグインの説明です。 プラグイン一覧や、プロジェクトで使うプラグインを選ぶときなどに表示されます。 + PluginDetail: + description: | + * `PluginDetailAnnotationEditor` - カスタムアノテーションエディタ用のプラグインを表します。 + * `PluginDetailTaskAssignment` - カスタムタスク割当用のプラグインを表します。 + * `PluginDetailAnnotationSpecs` - カスタムアノテーション仕様用のプラグインを表します。 + oneOf: + - $ref: "#/components/schemas/PluginDetailAnnotationEditor" + - $ref: "#/components/schemas/PluginDetailTaskAssignment" + - $ref: "#/components/schemas/PluginDetailAnnotationSpecs" + PluginDetailAnnotationEditor: + type: object + description: | + カスタムアノテーションエディタ用のプラグインを表します。 + required: + - compatible_input_data_types + properties: + url: + $ref: "#/components/schemas/AnnotationEditorUrl" + compatible_input_data_types: + $ref: "#/components/schemas/PluginCompatibleInputDataTypes" + _type: + type: string + description: | + `AnnotationEditor` + [詳しくはこちら](#section/API-Convention/API-_type) + example: "AnnotationEditor" + PluginDetailTaskAssignment: + type: object + description: | + カスタムタスク割当用のプラグインを表します。 + properties: + url: + $ref: "#/components/schemas/TaskAssignmentUrl" + _type: + type: string + description: | + `TaskAssignment` + [詳しくはこちら](#section/API-Convention/API-_type) + example: "TaskAssignment" + PluginDetailAnnotationSpecs: + type: object + description: | + カスタムアノテーション仕様用のプラグインを表します。 + required: + - compatible_input_data_types + properties: + url: + $ref: "#/components/schemas/AnnotationSpecsUrl" + compatible_input_data_types: + $ref: "#/components/schemas/PluginCompatibleInputDataTypes" + _type: + type: string + description: | + `AnnotationSpecs` + [詳しくはこちら](#section/API-Convention/API-_type) + example: "AnnotationSpecs" PluginCompatibleInputDataTypes: type: array items: diff --git a/generate/swagger/swagger.v2.yaml b/generate/swagger/swagger.v2.yaml index 1ccc25a1..ab675c35 100644 --- a/generate/swagger/swagger.v2.yaml +++ b/generate/swagger/swagger.v2.yaml @@ -115,7 +115,7 @@ info: 上記例 `account_id_count` は、タスクのフィールド `account_id` でタスクを分類したところ「`account_id` が `c5eee002` であるタスクが9件、`9f110e48` であるタスクが5件、`b25dfeb3` であるタスクが1件」だったという結果を表しています。 - version: 0.96.0 + version: 0.97.0 title: AnnoFab Web API x-logo: url: "https://annofab.com/images/logo_landscape.png" diff --git a/generate/swagger/swagger.yaml b/generate/swagger/swagger.yaml index 9cb78396..50ca53f0 100644 --- a/generate/swagger/swagger.yaml +++ b/generate/swagger/swagger.yaml @@ -116,7 +116,7 @@ info: 上記例 `account_id_count` は、タスクのフィールド `account_id` でタスクを分類したところ「`account_id` が `c5eee002` であるタスクが9件、`9f110e48` であるタスクが5件、`b25dfeb3` であるタスクが1件」だったという結果を表しています。 また、AggregationResultの集約の件数は、合計で10000件以下に制限されており、それを超える件数がある場合は上位10000件が取得されます。もし、省略された部分を取得したい場合は、検索条件を縛って結果に上る集約の数を減らしてください。 - version: 0.96.0 + version: 0.97.0 title: AnnoFab Web API x-logo: url: "https://annofab.com/images/logo_landscape.png"