OptHub AppSync GraphQL API

OptHubのGraphQL APIに関するドキュメントです。

API Endpoints
https://ruoupps4u5grdk3vd3l7s2kuwu.appsync-api.ap-northeast-1.amazonaws.com/graphql

Queries

getAppInfo

Description

アプリ情報の取得

Response

Returns an AppInfo!

Example

Query
query getAppInfo {
  getAppInfo {
    name
    version
    stage
    uid
  }
}
Response
{
  "data": {
    "getAppInfo": {
      "name": "opthub",
      "version": "0.1.0",
      "stage": "dev",
      "uid": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"
    }
  }
}

getCLIVersionStatus

Description

OptHub Clientに表示するメッセージの取得

Response

Returns [VersionStatusMessage]!

Arguments
Name Description
version - String OptHub Client CLI のバージョン

Example

Query
query getCLIVersionStatus($version: String) {
  getCLIVersionStatus(version: $version) {
    label
    labelColor
    message
    messageColor
  }
}
Variables
{"version": "xyz789"}
Response
{
  "data": {
    "getCLIVersionStatus": [
      {
        "label": "Error",
        "labelColor": "red",
        "message": "This version is not latest. Please update opthub-client version.",
        "messageColor": "black"
      }
    ]
  }
}

getCompetition

Description

コンペの取得

Response

Returns a Competition

Arguments
Name Description
id - String コンペのID
alias - String コンペのエイリアス

Example

Query
query getCompetition(
  $id: String,
  $alias: String
) {
  getCompetition(
    id: $id,
    alias: $alias
  ) {
    id
    createdAt
    updatedAt
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    openAt
    closeAt
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedRule {
      ...LocalizedStringFragment
    }
    mode
    locales
    submissionURL
    owner {
      ...UserProfileFragment
    }
    matchIds
    participantsCount
    isScored
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "alias": "eccomp2024"}
Response
{
  "data": {
    "getCompetition": {
      "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
      "createdAt": "xyz789",
      "updatedAt": "xyz789",
      "alias": "eccomp2024",
      "localizedTitle": LocalizedString,
      "localizedSubtitle": LocalizedString,
      "localizedAbstract": LocalizedString,
      "visibility": "public",
      "openAt": "xyz789",
      "closeAt": "abc123",
      "localizedDescription": LocalizedString,
      "localizedRule": LocalizedString,
      "mode": "server_evaluation",
      "locales": ["ja"],
      "submissionURL": "abc123",
      "owner": UserProfile,
      "matchIds": ["abc123"],
      "participantsCount": 987,
      "isScored": false
    }
  }
}

getCompetitionParticipant

Description

コンペの参加者の取得

Response

Returns a CompetitionParticipant

Arguments
Name Description
competition - CompetitionIdentifierInput! コンペを特定するための情報
participant - ParticipantInput! 参加者を特定するための情報

Example

Query
query getCompetitionParticipant(
  $competition: CompetitionIdentifierInput!,
  $participant: ParticipantInput!
) {
  getCompetitionParticipant(
    competition: $competition,
    participant: $participant
  ) {
    competitionId
    type
    id
    score
    ranking
    participatedAt
    user {
      ...UserProfileFragment
    }
  }
}
Variables
{
  "competition": CompetitionIdentifierInput,
  "participant": ParticipantInput
}
Response
{
  "data": {
    "getCompetitionParticipant": {
      "competitionId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "type": "User",
      "id": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "score": 0.497,
      "ranking": 2,
      "participatedAt": "2020-01-01T00:00:00Z",
      "user": UserProfile
    }
  }
}

getCompetitionParticipants

Description

コンペの参加者の一覧を取得

Arguments
Name Description
id - String コンペのID
alias - String コンペのエイリアス
limit - Int 取得する件数
isRanking - Boolean ランキング形式で取得するかどうか
lastFetchedSortKey - String 最後に取得したキー

Example

Query
query getCompetitionParticipants(
  $id: String,
  $alias: String,
  $limit: Int,
  $isRanking: Boolean,
  $lastFetchedSortKey: String
) {
  getCompetitionParticipants(
    id: $id,
    alias: $alias,
    limit: $limit,
    isRanking: $isRanking,
    lastFetchedSortKey: $lastFetchedSortKey
  ) {
    participants {
      ...CompetitionParticipantFragment
    }
    isLast
    lastFetchedSortKey
  }
}
Variables
{
  "id": "xyz789",
  "alias": "abc123",
  "limit": 987,
  "isRanking": false,
  "lastFetchedSortKey": "xyz789"
}
Response
{
  "data": {
    "getCompetitionParticipants": {
      "participants": [CompetitionParticipant],
      "isLast": true,
      "lastFetchedSortKey": "abc123"
    }
  }
}

getCompetitionsByIndicator

Description

指標が使われているコンペの取得

Response

Returns [Competition!]!

Arguments
Name Description
id - String 指標のID
alias - String 指標のエイリアス

Example

Query
query getCompetitionsByIndicator(
  $id: String,
  $alias: String
) {
  getCompetitionsByIndicator(
    id: $id,
    alias: $alias
  ) {
    id
    createdAt
    updatedAt
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    openAt
    closeAt
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedRule {
      ...LocalizedStringFragment
    }
    mode
    locales
    submissionURL
    owner {
      ...UserProfileFragment
    }
    matchIds
    participantsCount
    isScored
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "alias": "best"}
Response
{
  "data": {
    "getCompetitionsByIndicator": [
      {
        "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
        "createdAt": "xyz789",
        "updatedAt": "xyz789",
        "alias": "eccomp2024",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "openAt": "xyz789",
        "closeAt": "xyz789",
        "localizedDescription": LocalizedString,
        "localizedRule": LocalizedString,
        "mode": "server_evaluation",
        "locales": ["ja"],
        "submissionURL": "xyz789",
        "owner": UserProfile,
        "matchIds": ["xyz789"],
        "participantsCount": 123,
        "isScored": true
      }
    ]
  }
}

getCompetitionsByParticipantUser

Description

ユーザが参加しているコンペと参加したコンペの取得。ユーザを指定しない場合はログインユーザに対する結果を取得する。

Arguments
Name Description
id - String ユーザID
name - String ユーザ名

Example

Query
query getCompetitionsByParticipantUser(
  $id: String,
  $name: String
) {
  getCompetitionsByParticipantUser(
    id: $id,
    name: $name
  ) {
    participating {
      ...CompetitionFragment
    }
    participated {
      ...CompetitionFragment
    }
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "name": "ryuji"}
Response
{
  "data": {
    "getCompetitionsByParticipantUser": {
      "participating": [Competition],
      "participated": [Competition]
    }
  }
}

getCompetitionsByProblem

Description

問題が使われているコンペの取得

Response

Returns [Competition!]!

Arguments
Name Description
id - String 問題のID
alias - String 問題のエイリアス

Example

Query
query getCompetitionsByProblem(
  $id: String,
  $alias: String
) {
  getCompetitionsByProblem(
    id: $id,
    alias: $alias
  ) {
    id
    createdAt
    updatedAt
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    openAt
    closeAt
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedRule {
      ...LocalizedStringFragment
    }
    mode
    locales
    submissionURL
    owner {
      ...UserProfileFragment
    }
    matchIds
    participantsCount
    isScored
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "alias": "sphere"}
Response
{
  "data": {
    "getCompetitionsByProblem": [
      {
        "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
        "createdAt": "abc123",
        "updatedAt": "xyz789",
        "alias": "eccomp2024",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "openAt": "xyz789",
        "closeAt": "abc123",
        "localizedDescription": LocalizedString,
        "localizedRule": LocalizedString,
        "mode": "server_evaluation",
        "locales": ["ja"],
        "submissionURL": "abc123",
        "owner": UserProfile,
        "matchIds": ["xyz789"],
        "participantsCount": 987,
        "isScored": false
      }
    ]
  }
}

getCompetitionsByUser

Description

ユーザが作成したコンペの取得。ユーザを指定しない場合はログインユーザに対する結果を取得する。

Response

Returns [Competition!]!

Arguments
Name Description
id - String ユーザID
name - String ユーザ名

Example

Query
query getCompetitionsByUser(
  $id: String,
  $name: String
) {
  getCompetitionsByUser(
    id: $id,
    name: $name
  ) {
    id
    createdAt
    updatedAt
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    openAt
    closeAt
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedRule {
      ...LocalizedStringFragment
    }
    mode
    locales
    submissionURL
    owner {
      ...UserProfileFragment
    }
    matchIds
    participantsCount
    isScored
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "name": "ryuji"}
Response
{
  "data": {
    "getCompetitionsByUser": [
      {
        "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
        "createdAt": "abc123",
        "updatedAt": "xyz789",
        "alias": "eccomp2024",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "openAt": "abc123",
        "closeAt": "xyz789",
        "localizedDescription": LocalizedString,
        "localizedRule": LocalizedString,
        "mode": "server_evaluation",
        "locales": ["ja"],
        "submissionURL": "abc123",
        "owner": UserProfile,
        "matchIds": ["xyz789"],
        "participantsCount": 123,
        "isScored": true
      }
    ]
  }
}

getIndicator

Description

指標の取得

Response

Returns an Indicator

Arguments
Name Description
id - String 指標のID
alias - String 指標のエイリアス

Example

Query
query getIndicator(
  $id: String,
  $alias: String
) {
  getIndicator(
    id: $id,
    alias: $alias
  ) {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    github
    isOpenSource
    license
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    environments {
      ...IndicatorEnvironmentsFragment
    }
    locales
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "alias": "sphere"}
Response
{
  "data": {
    "getIndicator": {
      "id": "xyz789",
      "alias": "abc123",
      "localizedTitle": LocalizedString,
      "localizedSubtitle": LocalizedString,
      "localizedAbstract": LocalizedString,
      "visibility": "public",
      "dockerImage": "abc123",
      "github": "xyz789",
      "isOpenSource": false,
      "license": "abc123",
      "localizedDescription": LocalizedString,
      "localizedIODescription": LocalizedString,
      "environments": [IndicatorEnvironments],
      "locales": ["ja"],
      "createdAt": "abc123",
      "updatedAt": "abc123",
      "owner": UserProfile
    }
  }
}

getIndicatorsByUser

Description

ユーザが作成した指標の取得。ユーザを指定しない場合はログインユーザに対する結果を取得する。

Response

Returns [Indicator!]!

Arguments
Name Description
id - String ユーザID
name - String ユーザ名

Example

Query
query getIndicatorsByUser(
  $id: String,
  $name: String
) {
  getIndicatorsByUser(
    id: $id,
    name: $name
  ) {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    github
    isOpenSource
    license
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    environments {
      ...IndicatorEnvironmentsFragment
    }
    locales
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "name": "ryuji"}
Response
{
  "data": {
    "getIndicatorsByUser": [
      {
        "id": "abc123",
        "alias": "abc123",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "dockerImage": "abc123",
        "github": "xyz789",
        "isOpenSource": true,
        "license": "xyz789",
        "localizedDescription": LocalizedString,
        "localizedIODescription": LocalizedString,
        "environments": [IndicatorEnvironments],
        "locales": ["ja"],
        "createdAt": "abc123",
        "updatedAt": "xyz789",
        "owner": UserProfile
      }
    ]
  }
}

getMatch

Description

競技の取得

Response

Returns a Match

Arguments
Name Description
id - String 競技のID
alias - UniqueMatchAliasInput 競技のエイリアス

Example

Query
query getMatch(
  $id: String,
  $alias: UniqueMatchAliasInput
) {
  getMatch(
    id: $id,
    alias: $alias
  ) {
    id
    createdAt
    updatedAt
    competition {
      ...CompetitionFragment
    }
    problem {
      ...ProblemFragment
    }
    indicator {
      ...IndicatorFragment
    }
    alias
    successTrialsBudget
    submissionsBudget
    isTutorial
    problemPublicEnvironments {
      ...KeyValueFragment
    }
    indicatorPublicEnvironments {
      ...KeyValueFragment
    }
    problemPrivateEnvironments {
      ...NullableKeyValueFragment
    }
    indicatorPrivateEnvironments {
      ...NullableKeyValueFragment
    }
    openAt
    closeAt
    scoredParticipantsCount
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "alias": "{ match: 'mc-mop', competition: 'eccomp2024' }"
}
Response
{
  "data": {
    "getMatch": {
      "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "competition": Competition,
      "problem": Problem,
      "indicator": Indicator,
      "alias": "mc-mop",
      "successTrialsBudget": 123,
      "submissionsBudget": 987,
      "isTutorial": true,
      "problemPublicEnvironments": [KeyValue],
      "indicatorPublicEnvironments": [KeyValue],
      "problemPrivateEnvironments": [NullableKeyValue],
      "indicatorPrivateEnvironments": [NullableKeyValue],
      "openAt": "abc123",
      "closeAt": "xyz789",
      "scoredParticipantsCount": 987
    }
  }
}

getMatchParticipant

Description

競技の参加者の取得

Response

Returns a MatchParticipant

Arguments
Name Description
match - MatchIdentifierInput! 競技を特定するための情報
participant - ParticipantInput! 参加者を特定するための情報

Example

Query
query getMatchParticipant(
  $match: MatchIdentifierInput!,
  $participant: ParticipantInput!
) {
  getMatchParticipant(
    match: $match,
    participant: $participant
  ) {
    matchId
    type
    id
    successTrialsNum
    submissionsNum
    score
    participatedAt
    user {
      ...UserProfileFragment
    }
  }
}
Variables
{
  "match": MatchIdentifierInput,
  "participant": ParticipantInput
}
Response
{
  "data": {
    "getMatchParticipant": {
      "matchId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "type": "User",
      "id": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "successTrialsNum": 8,
      "submissionsNum": 15,
      "score": 0.497,
      "participatedAt": "2020-01-01T00:00:00Z",
      "user": UserProfile
    }
  }
}

getMatchParticipants

Description

競技の参加者の一覧を取得

Response

Returns a MatchParticipantsResponse!

Arguments
Name Description
id - String 競技のID
alias - UniqueMatchAliasInput 競技のエイリアス
limit - Int 取得する件数
isRanking - Boolean ランキング形式で取得するかどうか
lastFetchedSortKey - String 最後に取得したキー

Example

Query
query getMatchParticipants(
  $id: String,
  $alias: UniqueMatchAliasInput,
  $limit: Int,
  $isRanking: Boolean,
  $lastFetchedSortKey: String
) {
  getMatchParticipants(
    id: $id,
    alias: $alias,
    limit: $limit,
    isRanking: $isRanking,
    lastFetchedSortKey: $lastFetchedSortKey
  ) {
    participants {
      ...MatchParticipantFragment
    }
    isLast
    lastFetchedSortKey
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "alias": "{ match: 'mc-mop', competition: 'eccomp2024' }",
  "limit": 123,
  "isRanking": false,
  "lastFetchedSortKey": "abc123"
}
Response
{
  "data": {
    "getMatchParticipants": {
      "participants": [MatchParticipant],
      "isLast": true,
      "lastFetchedSortKey": "xyz789"
    }
  }
}

getMatchParticipantsScores

Description

競技の参加者のスコア系列の取得

Response

Returns [MatchParticipantScores!]!

Arguments
Name Description
match - MatchIdentifierInput! 競技を特定するための情報
participants - [ParticipantInput!]! 参加者を特定するための情報
startTrialNo - Int 最初の試行番号(指定しない場合は1)
endTrialNo - Int 最後の試行番号(指定しない場合は最後の試行)
interval - Int! データを取得する間隔(最後の試行は間隔に依存せず必ず取得される)

Example

Query
query getMatchParticipantsScores(
  $match: MatchIdentifierInput!,
  $participants: [ParticipantInput!]!,
  $startTrialNo: Int,
  $endTrialNo: Int,
  $interval: Int!
) {
  getMatchParticipantsScores(
    match: $match,
    participants: $participants,
    startTrialNo: $startTrialNo,
    endTrialNo: $endTrialNo,
    interval: $interval
  ) {
    participant {
      ...MatchParticipantFragment
    }
    scores {
      ...MatchParticipantScoreFragment
    }
  }
}
Variables
{
  "match": MatchIdentifierInput,
  "participants": [ParticipantInput],
  "startTrialNo": 987,
  "endTrialNo": 123,
  "interval": 123
}
Response
{
  "data": {
    "getMatchParticipantsScores": [
      {
        "participant": MatchParticipant,
        "scores": [MatchParticipantScore]
      }
    ]
  }
}

getMatchTrialByParticipant

Description

特定の参加者の特定の競技に対する試行の一覧を取得する。

Response

Returns a MatchTrial

Arguments
Name Description
match - MatchIdentifierInput! 競技の識別子
participant - ParticipantInput 参加者を特定するための情報。指定しない場合はログインユーザもしくはログインユーザが所属しているチームが利用される。コンペ開催中は管理者を除いてこのパラメータは指定不可。
trialNo - Int! 試行番号

Example

Query
query getMatchTrialByParticipant(
  $match: MatchIdentifierInput!,
  $participant: ParticipantInput,
  $trialNo: Int!
) {
  getMatchTrialByParticipant(
    match: $match,
    participant: $participant,
    trialNo: $trialNo
  ) {
    trialNo
    matchId
    participantType
    participantId
    userId
    status
    solution {
      ...MatchTrialSolutionFragment
    }
    evaluation {
      ...MatchTrialEvaluationFragment
    }
    score {
      ...MatchTrialScoreFragment
    }
    createdAt
  }
}
Variables
{
  "match": MatchIdentifierInput,
  "participant": ParticipantInput,
  "trialNo": 123
}
Response
{
  "data": {
    "getMatchTrialByParticipant": {
      "trialNo": 1,
      "matchId": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
      "participantType": "User",
      "participantId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "userId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "status": "evaluating",
      "solution": MatchTrialSolution,
      "evaluation": MatchTrialEvaluation,
      "score": MatchTrialScore,
      "createdAt": "xyz789"
    }
  }
}

getMatchTrialsByParticipant

Description

特定の参加者の特定の競技に対する試行の一覧を取得する。

Response

Returns a MatchTrialsResponse!

Arguments
Name Description
match - MatchIdentifierInput! 競技の識別子
participant - ParticipantInput 参加者を特定するための情報。指定しない場合はログインユーザもしくはログインユーザが所属しているチームが利用される。コンペ開催中は管理者を除いてこのパラメータは指定不可。
range - MatchTrialsRangeInput 取得するデータの範囲
order - Order 取得順。指定しない場合は昇順。

Example

Query
query getMatchTrialsByParticipant(
  $match: MatchIdentifierInput!,
  $participant: ParticipantInput,
  $range: MatchTrialsRangeInput,
  $order: Order
) {
  getMatchTrialsByParticipant(
    match: $match,
    participant: $participant,
    range: $range,
    order: $order
  ) {
    isFirst
    isLast
    startTrialNo
    endTrialNo
    trials {
      ...MatchTrialFragment
    }
  }
}
Variables
{
  "match": MatchIdentifierInput,
  "participant": ParticipantInput,
  "range": MatchTrialsRangeInput,
  "order": "ascending"
}
Response
{
  "data": {
    "getMatchTrialsByParticipant": {
      "isFirst": false,
      "isLast": true,
      "startTrialNo": 1,
      "endTrialNo": 10,
      "trials": [MatchTrial]
    }
  }
}

getMatchesByCompetition

Description

コンペの競技の一覧の取得

Response

Returns [Match!]!

Arguments
Name Description
id - String コンペのID
alias - String コンペのエイリアス

Example

Query
query getMatchesByCompetition(
  $id: String,
  $alias: String
) {
  getMatchesByCompetition(
    id: $id,
    alias: $alias
  ) {
    id
    createdAt
    updatedAt
    competition {
      ...CompetitionFragment
    }
    problem {
      ...ProblemFragment
    }
    indicator {
      ...IndicatorFragment
    }
    alias
    successTrialsBudget
    submissionsBudget
    isTutorial
    problemPublicEnvironments {
      ...KeyValueFragment
    }
    indicatorPublicEnvironments {
      ...KeyValueFragment
    }
    problemPrivateEnvironments {
      ...NullableKeyValueFragment
    }
    indicatorPrivateEnvironments {
      ...NullableKeyValueFragment
    }
    openAt
    closeAt
    scoredParticipantsCount
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "alias": "eccomp2024"}
Response
{
  "data": {
    "getMatchesByCompetition": [
      {
        "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
        "createdAt": "xyz789",
        "updatedAt": "abc123",
        "competition": Competition,
        "problem": Problem,
        "indicator": Indicator,
        "alias": "mc-mop",
        "successTrialsBudget": 987,
        "submissionsBudget": 123,
        "isTutorial": true,
        "problemPublicEnvironments": [KeyValue],
        "indicatorPublicEnvironments": [KeyValue],
        "problemPrivateEnvironments": [NullableKeyValue],
        "indicatorPrivateEnvironments": [
          NullableKeyValue
        ],
        "openAt": "xyz789",
        "closeAt": "xyz789",
        "scoredParticipantsCount": 123
      }
    ]
  }
}

getProblem

Description

問題の取得

Response

Returns a Problem

Arguments
Name Description
id - String 問題のID
alias - String 問題のエイリアス

Example

Query
query getProblem(
  $id: String,
  $alias: String
) {
  getProblem(
    id: $id,
    alias: $alias
  ) {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    localizedDescription {
      ...LocalizedStringFragment
    }
    github
    isOpenSource
    license
    locales
    environments {
      ...ProblemEnvironmentsFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "alias": "sphere"}
Response
{
  "data": {
    "getProblem": {
      "id": "abc123",
      "alias": "xyz789",
      "localizedTitle": LocalizedString,
      "localizedSubtitle": LocalizedString,
      "localizedAbstract": LocalizedString,
      "visibility": "public",
      "dockerImage": "xyz789",
      "localizedDescription": LocalizedString,
      "github": "xyz789",
      "isOpenSource": false,
      "license": "abc123",
      "locales": ["ja"],
      "environments": [ProblemEnvironments],
      "localizedIODescription": LocalizedString,
      "createdAt": "abc123",
      "updatedAt": "xyz789",
      "owner": UserProfile
    }
  }
}

getProblemsByUser

Description

ユーザが作成した問題の取得。ユーザを指定しない場合はログインユーザに対する結果を取得する。

Response

Returns [Problem!]!

Arguments
Name Description
id - String ユーザID
name - String ユーザ名

Example

Query
query getProblemsByUser(
  $id: String,
  $name: String
) {
  getProblemsByUser(
    id: $id,
    name: $name
  ) {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    localizedDescription {
      ...LocalizedStringFragment
    }
    github
    isOpenSource
    license
    locales
    environments {
      ...ProblemEnvironmentsFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "name": "ryuji"}
Response
{
  "data": {
    "getProblemsByUser": [
      {
        "id": "xyz789",
        "alias": "xyz789",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "dockerImage": "xyz789",
        "localizedDescription": LocalizedString,
        "github": "abc123",
        "isOpenSource": false,
        "license": "abc123",
        "locales": ["ja"],
        "environments": [ProblemEnvironments],
        "localizedIODescription": LocalizedString,
        "createdAt": "xyz789",
        "updatedAt": "xyz789",
        "owner": UserProfile
      }
    ]
  }
}

getPublicCompetitions

Description

公開されているコンペの取得

Response

Returns [Competition!]!

Example

Query
query getPublicCompetitions {
  getPublicCompetitions {
    id
    createdAt
    updatedAt
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    openAt
    closeAt
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedRule {
      ...LocalizedStringFragment
    }
    mode
    locales
    submissionURL
    owner {
      ...UserProfileFragment
    }
    matchIds
    participantsCount
    isScored
  }
}
Response
{
  "data": {
    "getPublicCompetitions": [
      {
        "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
        "createdAt": "abc123",
        "updatedAt": "abc123",
        "alias": "eccomp2024",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "openAt": "abc123",
        "closeAt": "abc123",
        "localizedDescription": LocalizedString,
        "localizedRule": LocalizedString,
        "mode": "server_evaluation",
        "locales": ["ja"],
        "submissionURL": "abc123",
        "owner": UserProfile,
        "matchIds": ["xyz789"],
        "participantsCount": 987,
        "isScored": false
      }
    ]
  }
}

getPublicIndicators

Description

公開されている指標の取得

Response

Returns [Indicator!]!

Example

Query
query getPublicIndicators {
  getPublicIndicators {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    github
    isOpenSource
    license
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    environments {
      ...IndicatorEnvironmentsFragment
    }
    locales
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Response
{
  "data": {
    "getPublicIndicators": [
      {
        "id": "xyz789",
        "alias": "xyz789",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "dockerImage": "xyz789",
        "github": "abc123",
        "isOpenSource": false,
        "license": "xyz789",
        "localizedDescription": LocalizedString,
        "localizedIODescription": LocalizedString,
        "environments": [IndicatorEnvironments],
        "locales": ["ja"],
        "createdAt": "xyz789",
        "updatedAt": "abc123",
        "owner": UserProfile
      }
    ]
  }
}

getPublicProblems

Description

公開されている問題の取得

Response

Returns [Problem!]!

Example

Query
query getPublicProblems {
  getPublicProblems {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    localizedDescription {
      ...LocalizedStringFragment
    }
    github
    isOpenSource
    license
    locales
    environments {
      ...ProblemEnvironmentsFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Response
{
  "data": {
    "getPublicProblems": [
      {
        "id": "xyz789",
        "alias": "xyz789",
        "localizedTitle": LocalizedString,
        "localizedSubtitle": LocalizedString,
        "localizedAbstract": LocalizedString,
        "visibility": "public",
        "dockerImage": "xyz789",
        "localizedDescription": LocalizedString,
        "github": "xyz789",
        "isOpenSource": true,
        "license": "xyz789",
        "locales": ["ja"],
        "environments": [ProblemEnvironments],
        "localizedIODescription": LocalizedString,
        "createdAt": "xyz789",
        "updatedAt": "abc123",
        "owner": UserProfile
      }
    ]
  }
}

getS3UploadURL

Description

署名付きURLの取得

Response

Returns an GetS3UploadURLResponse

Arguments
Name Description
path - String S3のパス

Example

Query
query getS3UploadURL($path: String) {
  getS3UploadURL(path: $path) {
    url
  }
}
Variables
{"path": "abc123"}
Response
{
  "data": {
    "getS3UploadURL": {"url": "abc123"}
  }
}

getUserProfile

Description

ユーザのプロフィールの取得。ユーザを指定しない場合はログインユーザに対する結果を取得する。

Response

Returns a UserProfile

Arguments
Name Description
id - String ユーザID
name - String ユーザ名

Example

Query
query getUserProfile(
  $id: String,
  $name: String
) {
  getUserProfile(
    id: $id,
    name: $name
  ) {
    id
    name
  }
}
Variables
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b", "name": "ryuji"}
Response
{
  "data": {
    "getUserProfile": {
      "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
      "name": "xyz789"
    }
  }
}

Mutations

createAPIKey

Description

APIキーの作成

Response

Returns an APIKey

Arguments
Name Description
force - Boolean 現在のAPIキーを無効にして強制的に作成するか

Example

Query
mutation createAPIKey($force: Boolean) {
  createAPIKey(force: $force) {
    value
    expiresAt
  }
}
Variables
{"force": false}
Response
{
  "data": {
    "createAPIKey": {
      "value": "abc123",
      "expiresAt": AWSDateTime
    }
  }
}

createCompetition

Description

コンペの作成

Response

Returns a CreateCompetitionResponse!

Arguments
Name Description
input - CreateCompetitionInput! コンペ作成リクエストの入力

Example

Query
mutation createCompetition($input: CreateCompetitionInput!) {
  createCompetition(input: $input) {
    id
  }
}
Variables
{"input": CreateCompetitionInput}
Response
{"data": {"createCompetition": {"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}}}

createIndicator

Description

指標の作成

Response

Returns a CreateIndicatorResponse!

Arguments
Name Description
input - CreateIndicatorInput! 指標作成リクエストの入力

Example

Query
mutation createIndicator($input: CreateIndicatorInput!) {
  createIndicator(input: $input) {
    id
  }
}
Variables
{"input": CreateIndicatorInput}
Response
{
  "data": {
    "createIndicator": {"id": "xyz789"}
  }
}

createMatch

Description

競技の作成

Response

Returns a CreateMatchResponse!

Arguments
Name Description
input - CreateMatchInput! 競技の作成リクエストの入力

Example

Query
mutation createMatch($input: CreateMatchInput!) {
  createMatch(input: $input) {
    id
  }
}
Variables
{"input": CreateMatchInput}
Response
{"data": {"createMatch": {"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}}}

createProblem

Description

問題の作成

Response

Returns a CreateProblemResponse!

Arguments
Name Description
input - CreateProblemInput! 問題作成リクエストの入力

Example

Query
mutation createProblem($input: CreateProblemInput!) {
  createProblem(input: $input) {
    id
  }
}
Variables
{"input": CreateProblemInput}
Response
{
  "data": {
    "createProblem": {"id": "xyz789"}
  }
}

createSolution

Description

解の作成

Response

Returns a CreateSolutionResponse!

Arguments
Name Description
matchId - String 競技のID
matchAlias - UniqueMatchAliasInput 競技のエイリアス
variable - AWSJSON! 解空間の変数

Example

Query
mutation createSolution(
  $matchId: String,
  $matchAlias: UniqueMatchAliasInput,
  $variable: AWSJSON!
) {
  createSolution(
    matchId: $matchId,
    matchAlias: $matchAlias,
    variable: $variable
  ) {
    matchId
    participantType
    participantId
    trialNo
  }
}
Variables
{
  "matchId": "04fcaf2c-7289-f4b6-07d9-3a4ec0dab9ad",
  "matchAlias": "{ match: 'mc-mop', competition: 'eccomp2024' }",
  "variable": AWSJSON
}
Response
{
  "data": {
    "createSolution": {
      "matchId": "04fcaf2c-7289-f4b6-07d9-3a4ec0dab9ad",
      "participantType": "User",
      "participantId": "8ddca3f7-91da-47d4-f52b-dcf2cd87aa70",
      "trialNo": 4
    }
  }
}

deleteCompetition

Description

コンペの削除

Response

Returns a DeleteCompetitionResponse

Arguments
Name Description
id - String コンペのID
alias - String コンペのエイリアス

Example

Query
mutation deleteCompetition(
  $id: String,
  $alias: String
) {
  deleteCompetition(
    id: $id,
    alias: $alias
  ) {
    id
  }
}
Variables
{
  "id": "abc123",
  "alias": "abc123"
}
Response
{
  "data": {
    "deleteCompetition": {"id": "xyz789"}
  }
}

deleteIndicator

Description

指標の削除

Response

Returns a DeleteIndicatorResponse

Arguments
Name Description
id - String 指標のID
alias - String 指標のエイリアス

Example

Query
mutation deleteIndicator(
  $id: String,
  $alias: String
) {
  deleteIndicator(
    id: $id,
    alias: $alias
  ) {
    id
  }
}
Variables
{
  "id": "xyz789",
  "alias": "xyz789"
}
Response
{
  "data": {
    "deleteIndicator": {"id": "xyz789"}
  }
}

deleteMatch

Description

競技の削除

Response

Returns a DeleteMatchResponse!

Arguments
Name Description
id - String 競技のID
alias - UniqueMatchAliasInput

Example

Query
mutation deleteMatch(
  $id: String,
  $alias: UniqueMatchAliasInput
) {
  deleteMatch(
    id: $id,
    alias: $alias
  ) {
    id
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "alias": UniqueMatchAliasInput
}
Response
{"data": {"deleteMatch": {"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}}}

deleteProblem

Description

問題の削除

Response

Returns a DeleteProblemResponse

Arguments
Name Description
id - String 問題のID
alias - String 問題のエイリアス

Example

Query
mutation deleteProblem(
  $id: String,
  $alias: String
) {
  deleteProblem(
    id: $id,
    alias: $alias
  ) {
    id
  }
}
Variables
{
  "id": "abc123",
  "alias": "xyz789"
}
Response
{
  "data": {
    "deleteProblem": {"id": "xyz789"}
  }
}

participateCompetition

Description

コンペの参加

Response

Returns a CompetitionParticipant

Arguments
Name Description
id - String コンペのID
alias - String コンペのエイリアス

Example

Query
mutation participateCompetition(
  $id: String,
  $alias: String
) {
  participateCompetition(
    id: $id,
    alias: $alias
  ) {
    competitionId
    type
    id
    score
    ranking
    participatedAt
    user {
      ...UserProfileFragment
    }
  }
}
Variables
{
  "id": "xyz789",
  "alias": "xyz789"
}
Response
{
  "data": {
    "participateCompetition": {
      "competitionId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "type": "User",
      "id": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
      "score": 0.497,
      "ranking": 2,
      "participatedAt": "2020-01-01T00:00:00Z",
      "user": UserProfile
    }
  }
}

publishCompetition

Description

コンペの可視性の更新

Response

Returns a Competition!

Arguments
Name Description
id - String コンペのID
alias - String コンペのエイリアス

Example

Query
mutation publishCompetition(
  $id: String,
  $alias: String
) {
  publishCompetition(
    id: $id,
    alias: $alias
  ) {
    id
    createdAt
    updatedAt
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    openAt
    closeAt
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedRule {
      ...LocalizedStringFragment
    }
    mode
    locales
    submissionURL
    owner {
      ...UserProfileFragment
    }
    matchIds
    participantsCount
    isScored
  }
}
Variables
{
  "id": "xyz789",
  "alias": "xyz789"
}
Response
{
  "data": {
    "publishCompetition": {
      "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "alias": "eccomp2024",
      "localizedTitle": LocalizedString,
      "localizedSubtitle": LocalizedString,
      "localizedAbstract": LocalizedString,
      "visibility": "public",
      "openAt": "xyz789",
      "closeAt": "abc123",
      "localizedDescription": LocalizedString,
      "localizedRule": LocalizedString,
      "mode": "server_evaluation",
      "locales": ["ja"],
      "submissionURL": "xyz789",
      "owner": UserProfile,
      "matchIds": ["xyz789"],
      "participantsCount": 987,
      "isScored": true
    }
  }
}

publishIndicator

Description

指標の可視性の更新

Response

Returns an Indicator!

Arguments
Name Description
id - String 指標のID
alias - String 指標のエイリアス

Example

Query
mutation publishIndicator(
  $id: String,
  $alias: String
) {
  publishIndicator(
    id: $id,
    alias: $alias
  ) {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    github
    isOpenSource
    license
    localizedDescription {
      ...LocalizedStringFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    environments {
      ...IndicatorEnvironmentsFragment
    }
    locales
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Variables
{
  "id": "abc123",
  "alias": "xyz789"
}
Response
{
  "data": {
    "publishIndicator": {
      "id": "abc123",
      "alias": "xyz789",
      "localizedTitle": LocalizedString,
      "localizedSubtitle": LocalizedString,
      "localizedAbstract": LocalizedString,
      "visibility": "public",
      "dockerImage": "abc123",
      "github": "abc123",
      "isOpenSource": false,
      "license": "xyz789",
      "localizedDescription": LocalizedString,
      "localizedIODescription": LocalizedString,
      "environments": [IndicatorEnvironments],
      "locales": ["ja"],
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "owner": UserProfile
    }
  }
}

publishProblem

Description

可視性の更新

Response

Returns a Problem!

Arguments
Name Description
id - String 問題のID
alias - String 問題のエイリアス

Example

Query
mutation publishProblem(
  $id: String,
  $alias: String
) {
  publishProblem(
    id: $id,
    alias: $alias
  ) {
    id
    alias
    localizedTitle {
      ...LocalizedStringFragment
    }
    localizedSubtitle {
      ...LocalizedStringFragment
    }
    localizedAbstract {
      ...LocalizedStringFragment
    }
    visibility
    dockerImage
    localizedDescription {
      ...LocalizedStringFragment
    }
    github
    isOpenSource
    license
    locales
    environments {
      ...ProblemEnvironmentsFragment
    }
    localizedIODescription {
      ...LocalizedStringFragment
    }
    createdAt
    updatedAt
    owner {
      ...UserProfileFragment
    }
  }
}
Variables
{
  "id": "xyz789",
  "alias": "abc123"
}
Response
{
  "data": {
    "publishProblem": {
      "id": "xyz789",
      "alias": "xyz789",
      "localizedTitle": LocalizedString,
      "localizedSubtitle": LocalizedString,
      "localizedAbstract": LocalizedString,
      "visibility": "public",
      "dockerImage": "abc123",
      "localizedDescription": LocalizedString,
      "github": "abc123",
      "isOpenSource": true,
      "license": "xyz789",
      "locales": ["ja"],
      "environments": [ProblemEnvironments],
      "localizedIODescription": LocalizedString,
      "createdAt": "xyz789",
      "updatedAt": "abc123",
      "owner": UserProfile
    }
  }
}

updateCompetition

Description

コンペの更新

Response

Returns an UpdateCompetitionResponse!

Arguments
Name Description
id - String! ID
input - UpdateCompetitionInput! コンペの更新リクエストの入力

Example

Query
mutation updateCompetition(
  $id: String!,
  $input: UpdateCompetitionInput!
) {
  updateCompetition(
    id: $id,
    input: $input
  ) {
    id
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "input": UpdateCompetitionInput
}
Response
{"data": {"updateCompetition": {"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}}}

updateIndicator

Description

指標の更新

Response

Returns an UpdateIndicatorResponse!

Arguments
Name Description
id - String! ID
input - UpdateIndicatorInput! 指標の更新リクエストの入力

Example

Query
mutation updateIndicator(
  $id: String!,
  $input: UpdateIndicatorInput!
) {
  updateIndicator(
    id: $id,
    input: $input
  ) {
    id
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "input": UpdateIndicatorInput
}
Response
{
  "data": {
    "updateIndicator": {"id": "abc123"}
  }
}

updateMatch

Description

競技の更新

Response

Returns an UpdateMatchResponse!

Arguments
Name Description
id - String! ID
input - UpdateMatchInput! 競技の更新リクエストの入力

Example

Query
mutation updateMatch(
  $id: String!,
  $input: UpdateMatchInput!
) {
  updateMatch(
    id: $id,
    input: $input
  ) {
    id
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "input": UpdateMatchInput
}
Response
{"data": {"updateMatch": {"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}}}

updateProblem

Description

問題の更新

Response

Returns an UpdateProblemResponse!

Arguments
Name Description
id - String! ID
input - UpdateProblemInput! 問題の更新リクエストの入力

Example

Query
mutation updateProblem(
  $id: String!,
  $input: UpdateProblemInput!
) {
  updateProblem(
    id: $id,
    input: $input
  ) {
    id
  }
}
Variables
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "input": UpdateProblemInput
}
Response
{
  "data": {
    "updateProblem": {"id": "xyz789"}
  }
}

Types

APIKey

Fields
Field Name Description
value - String! APIキーの値
expiresAt - AWSDateTime! 有効期限
Example
{
  "value": "xyz789",
  "expiresAt": AWSDateTime
}

AWSDateTime

Description

AppSyncで利用可能な日時用の型

Example
AWSDateTime

AWSJSON

Description

AppSyncで利用可能なJSON型

Example
AWSJSON

AppInfo

Description

アプリ情報

Fields
Field Name Description
name - String! アプリ名
version - String! APIのバージョン
stage - String! APIの環境 local, dev or prod
uid - String リクエストをしたユーザのID
Example
{
  "name": "opthub",
  "version": "0.1.0",
  "stage": "dev",
  "uid": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"
}

Boolean

Description

The Boolean scalar type represents true or false.

Competition

Description

コンペ

Fields
Field Name Description
id - String! ID
createdAt - String! 作成日時
updatedAt - String! 更新日時
alias - String! エイリアス
localizedTitle - LocalizedString! 言語ごとのタイトル
localizedSubtitle - LocalizedString 言語ごとのサブタイトル
localizedAbstract - LocalizedString! 言語ごとの要約
visibility - Visibility! 可視性
openAt - String! 開始日時
closeAt - String! 終了日時
localizedDescription - LocalizedString 言語ごとの説明
localizedRule - LocalizedString 言語ごとのルール
mode - CompetitionMode コンペのモード
locales - [Locale!]! コンペの対応言語
submissionURL - String コンペの提出用URL
owner - UserProfile コンペのオーナー
matchIds - [String!]! 競技のIDの一覧
participantsCount - Int! 参加者数
isScored - Boolean! スコアが登録されているか
Example
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "createdAt": "abc123",
  "updatedAt": "abc123",
  "alias": "eccomp2024",
  "localizedTitle": LocalizedString,
  "localizedSubtitle": LocalizedString,
  "localizedAbstract": LocalizedString,
  "visibility": "public",
  "openAt": "abc123",
  "closeAt": "abc123",
  "localizedDescription": LocalizedString,
  "localizedRule": LocalizedString,
  "mode": "server_evaluation",
  "locales": ["ja"],
  "submissionURL": "xyz789",
  "owner": UserProfile,
  "matchIds": ["abc123"],
  "participantsCount": 123,
  "isScored": true
}

CompetitionIdentifierInput

Fields
Input Field Description
id - String コンペのID
alias - String コンペのエイリアス
Example
{
  "id": "abc123",
  "alias": "abc123"
}

CompetitionMode

Description

コンペの開催形式

Values
Enum Value Description

server_evaluation

サーバー評価

file_submission

ファイル提出
Example
"server_evaluation"

CompetitionParticipant

Fields
Field Name Description
competitionId - String! コンペのID
type - ParticipantType! 参加者の種別
id - String! 参加者のID
score - Float 競技の結果を総合したコンペのスコア。コンペの主催者が終了後に格納。
ranking - Int 競技の結果を総合したコンペの総合順位。コンペの主催者が終了後に格納。
participatedAt - String! 参加時刻
user - UserProfile 参加者のプロフィール
Example
{
  "competitionId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "type": "User",
  "id": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "score": 0.497,
  "ranking": 2,
  "participatedAt": "2020-01-01T00:00:00Z",
  "user": UserProfile
}

CompetitionParticipantsResponse

Fields
Field Name Description
participants - [CompetitionParticipant!]! コンペの参加者の一覧
isLast - Boolean! 今回取得したデータが全データの最後尾かどうか
lastFetchedSortKey - String 今回取得した最後尾のキー
Example
{
  "participants": [CompetitionParticipant],
  "isLast": true,
  "lastFetchedSortKey": "xyz789"
}

CreateCompetitionInput

Description

コンペ作成リクエストの入力

Fields
Input Field Description
alias - String! エイリアス
localizedTitle - LocalizedStringInput! 言語ごとのタイトル
localizedSubtitle - LocalizedStringInput 言語ごとのサブタイトル
localizedAbstract - LocalizedStringInput! 言語ごとの要約
visibility - Visibility! 可視性
openAt - AWSDateTime! 開始日時
closeAt - AWSDateTime! 終了日時
localizedDescription - LocalizedStringInput 言語ごとの説明
localizedRule - LocalizedStringInput 言語ごとのルール
mode - CompetitionMode コンペのモード
locales - [Locale!]! コンペの対応言語
submissionURL - String コンペの提出用URL
Example
{
  "alias": "eccomp2024",
  "localizedTitle": LocalizedStringInput,
  "localizedSubtitle": LocalizedStringInput,
  "localizedAbstract": LocalizedStringInput,
  "visibility": "public",
  "openAt": AWSDateTime,
  "closeAt": AWSDateTime,
  "localizedDescription": LocalizedStringInput,
  "localizedRule": LocalizedStringInput,
  "mode": "server_evaluation",
  "locales": ["ja"],
  "submissionURL": "xyz789"
}

CreateCompetitionResponse

Description

コンペ作成リクエストの結果

Fields
Field Name Description
id - String! 作成されたコンペのID
Example
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}

CreateIndicatorInput

Description

指標の作成リクエストの入力

Fields
Input Field Description
alias - String! 指標のエイリアス
localizedTitle - LocalizedStringInput! 言語ごとの指標のタイトル
localizedSubtitle - LocalizedStringInput 言語ごとの指標のサブタイトル
localizedAbstract - LocalizedStringInput! 言語ごとの指標の要約
visibility - Visibility! 指標の可視性
dockerImage - String 指標のDockerイメージ
github - String dockerImageのgithubリポジトリのURL
isOpenSource - Boolean ソースコードがオープンソースであるかどうか
license - String ソースコードのライセンス
localizedDescription - LocalizedStringInput 言語ごとの指標の説明
localizedIODescription - LocalizedStringInput 指標のIOの説明
environments - [IndicatorEnvironmentsInput!] 指標の環境変数
locales - [Locale!] 指標の対応言語
Example
{
  "alias": "xyz789",
  "localizedTitle": LocalizedStringInput,
  "localizedSubtitle": LocalizedStringInput,
  "localizedAbstract": LocalizedStringInput,
  "visibility": "public",
  "dockerImage": "xyz789",
  "github": "xyz789",
  "isOpenSource": true,
  "license": "abc123",
  "localizedDescription": LocalizedStringInput,
  "localizedIODescription": LocalizedStringInput,
  "environments": [IndicatorEnvironmentsInput],
  "locales": ["ja"]
}

CreateIndicatorResponse

Description

指標の作成リクエストの結果

Fields
Field Name Description
id - String! 作成された指標のID
Example
{"id": "xyz789"}

CreateMatchInput

Description

競技作成リクエストの入力

Fields
Input Field Description
competitionID - String! コンペのID
problemID - String! 競技に使う問題のID
indicatorID - String! 競技に使う指標のID
alias - String! コンペのエイリアスと競技のエイリアスの組み
isTutorial - Boolean! チュートリアルの競技かどうか
successTrialsBudget - Int! 各参加者に割り当てられる解の評価回数
submissionsBudget - Int! 各参加者に割り当てられる解の送信回数
problemPublicEnvironments - [KeyValueInput!]! 問題で使用される公開環境変数
indicatorPublicEnvironments - [KeyValueInput!]! 指標で使用される公開環境変数
problemPrivateEnvironments - [KeyValueInput!]! 問題で使用される非公開の環境変数
indicatorPrivateEnvironments - [KeyValueInput!]! 指標で使用される非公開の環境変数
openAt - AWSDateTime 競技の開始日時
closeAt - AWSDateTime 競技の終了日時
Example
{
  "competitionID": "abc123",
  "problemID": "b9e9c56f-8fb8-6e0c-9781-5904891bbd31",
  "indicatorID": "2ebf5d5a-5a10-5674-f3d3-d2b0d214e43f",
  "alias": "eccomp2024#mc-mop",
  "isTutorial": true,
  "successTrialsBudget": 987,
  "submissionsBudget": 123,
  "problemPublicEnvironments": [KeyValueInput],
  "indicatorPublicEnvironments": [KeyValueInput],
  "problemPrivateEnvironments": [KeyValueInput],
  "indicatorPrivateEnvironments": [KeyValueInput],
  "openAt": AWSDateTime,
  "closeAt": AWSDateTime
}

CreateMatchResponse

Description

競技作成リクエストの出力

Fields
Field Name Description
id - String! 作成されたコンペのID
Example
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}

CreateProblemInput

Description

問題の作成リクエストの入力

Fields
Input Field Description
alias - String! 問題のエイリアス
localizedTitle - LocalizedStringInput! 言語ごとの問題のタイトル
localizedSubtitle - LocalizedStringInput 言語ごとの問題のサブタイトル
localizedAbstract - LocalizedStringInput! 言語ごとの問題の要約
visibility - Visibility! 問題の可視性
dockerImage - String 問題のDockerイメージ
localizedDescription - LocalizedStringInput 言語ごとの指標の説明
github - String dockerImageのgithubリポジトリのURL
isOpenSource - Boolean ソースコードがオープンソースであるかどうか
license - String ソースコードのライセンス
locales - [Locale!] 問題の対応言語
environments - [ProblemEnvironmentsInput!] 問題の環境変数
localizedIODescription - LocalizedStringInput 問題のIOの説明
Example
{
  "alias": "abc123",
  "localizedTitle": LocalizedStringInput,
  "localizedSubtitle": LocalizedStringInput,
  "localizedAbstract": LocalizedStringInput,
  "visibility": "public",
  "dockerImage": "abc123",
  "localizedDescription": LocalizedStringInput,
  "github": "xyz789",
  "isOpenSource": true,
  "license": "abc123",
  "locales": ["ja"],
  "environments": [ProblemEnvironmentsInput],
  "localizedIODescription": LocalizedStringInput
}

CreateProblemResponse

Description

問題の作成リクエストの結果

Fields
Field Name Description
id - String! 作成された問題のID
Example
{"id": "abc123"}

CreateSolutionResponse

Description

解の作成リクエストの結果

Fields
Field Name Description
matchId - String! 競技のID
participantType - String! 参加者の種別
participantId - String! 参加者のID
trialNo - Int! 試行番号
Example
{
  "matchId": "04fcaf2c-7289-f4b6-07d9-3a4ec0dab9ad",
  "participantType": "User",
  "participantId": "8ddca3f7-91da-47d4-f52b-dcf2cd87aa70",
  "trialNo": 4
}

DeleteCompetitionResponse

Description

コンペの削除リクエストの結果

Fields
Field Name Description
id - String! 削除されたコンペのID
Example
{"id": "xyz789"}

DeleteIndicatorResponse

Description

指標の削除リクエストの結果

Fields
Field Name Description
id - String! 削除された指標のID
Example
{"id": "xyz789"}

DeleteMatchResponse

Description

競技削除リクエストのレスポンス

Fields
Field Name Description
id - String! 削除されたコンペのID
Example
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}

DeleteProblemResponse

Description

問題の削除リクエストの結果

Fields
Field Name Description
id - String! 削除された問題のID
Example
{"id": "abc123"}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

GetCompetitionsByParticipantUserResponse

Fields
Field Name Description
participating - [Competition!]! 参加中のコンペの一覧(参加等登録をしたコンペのうち終了日前のコンペの一覧)
participated - [Competition!]! 参加中のコンペの一覧(参加等登録をしたコンペのうち終了日後のコンペの一覧)
Example
{
  "participating": [Competition],
  "participated": [Competition]
}

GetS3UploadURLResponse

Description

署名付きURLの取得の結果

Fields
Field Name Description
url - String! 署名付きURL
Example
{"url": "xyz789"}

Indicator

Description

指標

Fields
Field Name Description
id - String! 指標のID
alias - String! 指標のエイリアス
localizedTitle - LocalizedString! 言語ごとの指標のタイトル
localizedSubtitle - LocalizedString 言語ごとの指標のサブタイトル
localizedAbstract - LocalizedString! 言語ごとの指標の要約
visibility - Visibility! 指標の可視性
dockerImage - String 指標のDockerイメージ
github - String 指標のGitHubリポジトリ
isOpenSource - Boolean ソースコードがオープンソースであるかどうか
license - String ソースコードのライセンス
localizedDescription - LocalizedString 言語ごとの指標の説明
localizedIODescription - LocalizedString 指標のIOの説明
environments - [IndicatorEnvironments!] 指標の環境変数
locales - [Locale!]! 指標の対応言語
createdAt - String! 指標の作成日時
updatedAt - String! 指標の更新日時
owner - UserProfile 指標のオーナー
Example
{
  "id": "abc123",
  "alias": "xyz789",
  "localizedTitle": LocalizedString,
  "localizedSubtitle": LocalizedString,
  "localizedAbstract": LocalizedString,
  "visibility": "public",
  "dockerImage": "xyz789",
  "github": "abc123",
  "isOpenSource": true,
  "license": "xyz789",
  "localizedDescription": LocalizedString,
  "localizedIODescription": LocalizedString,
  "environments": [IndicatorEnvironments],
  "locales": ["ja"],
  "createdAt": "abc123",
  "updatedAt": "xyz789",
  "owner": UserProfile
}

IndicatorEnvironments

Description

指標の環境変数の型

Fields
Field Name Description
key - String! 環境変数のキー
localizedDescription - LocalizedString! 環境変数の説明
defaultValue - String 環境変数のデフォルト値
Example
{
  "key": "abc123",
  "localizedDescription": LocalizedString,
  "defaultValue": "abc123"
}

IndicatorEnvironmentsInput

Description

指標の環境変数の入力型

Fields
Input Field Description
key - String! 環境変数のキー
localizedDescription - LocalizedStringInput! 環境変数の説明
defaultValue - String 環境変数のデフォルト値
Example
{
  "key": "abc123",
  "localizedDescription": LocalizedStringInput,
  "defaultValue": "abc123"
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

KeyValue

Description

KeyとValueの組の型

Fields
Field Name Description
key - String! キー
value - String!
Example
{
  "key": "abc123",
  "value": "xyz789"
}

KeyValueInput

Description

KeyとValueの組の入力

Fields
Input Field Description
key - String! キー
value - String!
Example
{
  "key": "xyz789",
  "value": "xyz789"
}

Locale

Values
Enum Value Description

ja

日本語

en

英語
Example
"ja"

LocalizedString

Description

言語ごとにローカライズされた文字列の型

Fields
Field Name Description
en - String 英語
ja - String 日本語
Example
{"en": "String in english", "ja": "日本語の文字列"}

LocalizedStringInput

Description

言語ごとにローカライズされた文字列の入力

Fields
Input Field Description
en - String 英語
ja - String 日本語
Example
{"en": "String in english", "ja": "日本語の文字列"}

Match

Description

競技

Fields
Field Name Description
id - String! ID
createdAt - String! 作成日時
updatedAt - String! 更新日時
competition - Competition コンペ
problem - Problem 競技に使う問題
indicator - Indicator 競技に使う指標
alias - String! 競技のエイリアス
successTrialsBudget - Int! 各参加者に割り当てられる解の評価回数
submissionsBudget - Int! 各参加者に割り当てられる解の送信回数
isTutorial - Boolean! チュートリアルの競技かどうか
problemPublicEnvironments - [KeyValue!]! 問題で使用される公開環境変数
indicatorPublicEnvironments - [KeyValue!]! 指標で使用される公開環境変数
problemPrivateEnvironments - [NullableKeyValue!]! 問題で使用される非公開の環境変数
indicatorPrivateEnvironments - [NullableKeyValue!]! 指標で使用される非公開の環境変数
openAt - String! 競技の開始日時
closeAt - String! 競技の終了日時
scoredParticipantsCount - Int スコアが登録された参加者数
Example
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "createdAt": "xyz789",
  "updatedAt": "abc123",
  "competition": Competition,
  "problem": Problem,
  "indicator": Indicator,
  "alias": "mc-mop",
  "successTrialsBudget": 123,
  "submissionsBudget": 987,
  "isTutorial": true,
  "problemPublicEnvironments": [KeyValue],
  "indicatorPublicEnvironments": [KeyValue],
  "problemPrivateEnvironments": [NullableKeyValue],
  "indicatorPrivateEnvironments": [NullableKeyValue],
  "openAt": "xyz789",
  "closeAt": "xyz789",
  "scoredParticipantsCount": 123
}

MatchIdentifierInput

Fields
Input Field Description
id - String 競技のID
alias - UniqueMatchAliasInput 競技のエイリアス
Example
{
  "id": "xyz789",
  "alias": UniqueMatchAliasInput
}

MatchParticipant

Description

競技の参加者

Fields
Field Name Description
matchId - String! 競技のID
type - ParticipantType! 参加者の種別
id - String! 参加者のID
successTrialsNum - Int! 提出した解のうち評価とスコアの計算に成功した試行の数
submissionsNum - Int! 解の提出回数
score - Float 競技に対するスコア
participatedAt - String! 参加時刻
user - UserProfile 参加者のプロフィール
Example
{
  "matchId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "type": "User",
  "id": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "successTrialsNum": 8,
  "submissionsNum": 15,
  "score": 0.497,
  "participatedAt": "2020-01-01T00:00:00Z",
  "user": UserProfile
}

MatchParticipantScore

Fields
Field Name Description
evaluationNo - Int! 評価回数
trialNo - Int! 試行番号
score - Float! スコア
Example
{"evaluationNo": 123, "trialNo": 987, "score": 123.45}

MatchParticipantScores

Fields
Field Name Description
participant - MatchParticipant! 競技の参加者
scores - [MatchParticipantScore!]! 競技の参加者のスコア
Example
{
  "participant": MatchParticipant,
  "scores": [MatchParticipantScore]
}

MatchParticipantsResponse

Fields
Field Name Description
participants - [MatchParticipant!]! 競技の参加者の一覧
isLast - Boolean! 今回取得したデータが全データの最後尾かどうか
lastFetchedSortKey - String 今回取得した最後尾のキー
Example
{
  "participants": [MatchParticipant],
  "isLast": true,
  "lastFetchedSortKey": "abc123"
}

MatchTrial

Fields
Field Name Description
trialNo - Int! 試行番号
matchId - String! 競技のID
participantType - ParticipantType! 参加者の種別
participantId - String! 参加者のID
userId - String! ユーザID
status - MatchTrialStatus! 試行の状況
solution - MatchTrialSolution! 送信された解
evaluation - MatchTrialEvaluation 評価結果
score - MatchTrialScore スコアの計算結果
createdAt - String! 試行の作成日時(解の作成日時と同じ)
Example
{
  "trialNo": 1,
  "matchId": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "participantType": "User",
  "participantId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "userId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "status": "evaluating",
  "solution": MatchTrialSolution,
  "evaluation": MatchTrialEvaluation,
  "score": MatchTrialScore,
  "createdAt": "abc123"
}

MatchTrialEvaluation

Fields
Field Name Description
objective - AWSJSON 目的関数の値
constraint - AWSJSON 制約条件の値
feasible - Boolean 実行可能解であるかどうか
info - AWSJSON 評価の付随情報
startedAt - String 評価の開始日時
finishedAt - String 評価の終了日時
error - String 評価のエラー情報
status - RunnerStatus! 評価のステータス
Example
{
  "objective": AWSJSON,
  "constraint": AWSJSON,
  "feasible": false,
  "info": AWSJSON,
  "startedAt": "abc123",
  "finishedAt": "xyz789",
  "error": "xyz789",
  "status": "Success"
}

MatchTrialScore

Fields
Field Name Description
value - Float スコアの値
startedAt - String スコア計算の開始日時
finishedAt - String スコア計算の終了日時
error - String スコア計算のエラー情報
status - RunnerStatus! スコア計算のステータス
Example
{
  "value": 987.65,
  "startedAt": "abc123",
  "finishedAt": "abc123",
  "error": "abc123",
  "status": "Success"
}

MatchTrialSolution

Fields
Field Name Description
variable - AWSJSON! 状態変数の値
createdAt - String! 解の作成日時
Example
{
  "variable": AWSJSON,
  "createdAt": "xyz789"
}

MatchTrialStatus

Values
Enum Value Description

evaluating

評価中

scoring

スコア計算中

success

成功

evaluator_failed

評価失敗

scorer_failed

スコア計算失敗
Example
"evaluating"

MatchTrialsRangeInput

Fields
Input Field Description
startTrialNo - Int データの一番最初の試行番号。0以下の値を指定した場合は、[現在のユーザの解の送信数] + [指定した値]となる。endTrialNoを指定している場合は使用不可能なので、代わりにlimitを使ってデータ数を決定する。
endTrialNo - Int データの一番最後の試行番号。0以下の値を指定した場合は、[現在のユーザの解の送信数] + [指定した値]となる。startTrialNoを指定している場合は使用不可能なので、代わりにlimitを使ってデータ数を決定する。
limit - Int 取得数の上限(正の整数)
Example
{"startTrialNo": 1, "endTrialNo": 1, "limit": 20}

MatchTrialsResponse

Fields
Field Name Description
isFirst - Boolean! 一番最初の試行番号まで取得した場合にtrue
isLast - Boolean! 一番最後の試行番号まで取得した場合にtrue
startTrialNo - Int 取得したデータの一番最初の試行番号
endTrialNo - Int 取得したデータの一番最後の試行番号
trials - [MatchTrial!]! 試行の一覧
Example
{
  "isFirst": true,
  "isLast": false,
  "startTrialNo": 1,
  "endTrialNo": 10,
  "trials": [MatchTrial]
}

NullableKeyValue

Fields
Field Name Description
key - String! キー
value - String
Example
{
  "key": "xyz789",
  "value": "xyz789"
}

Order

Values
Enum Value Description

ascending

昇順

descending

降順
Example
"ascending"

ParticipantInput

Description

参加者を特定するための入力。userIdのみもしくはtypeとidの両方を指定する必要がある。userIdのみを指定した場合は、当該ユーザがチームで参加している場合は当該チーム、個人で参加している場合は当該ユーザが参加者として利用される。

Fields
Input Field Description
type - ParticipantType 参加者の種別
id - String 参加者のID
userId - String ユーザID
Example
{
  "type": "User",
  "id": "ae383a1f-fef5-47c1-85f9-ef34756d58ac",
  "userId": "ae383a1f-fef5-47c1-85f9-ef34756d58ac"
}

ParticipantType

Description

参加者の種別

Values
Enum Value Description

User

ユーザ

Team

チーム
Example
"User"

Problem

Description

問題

Fields
Field Name Description
id - String! 問題のID
alias - String! 問題のエイリアス
localizedTitle - LocalizedString! 言語ごとの問題のタイトル
localizedSubtitle - LocalizedString 言語ごとの問題のサブタイトル
localizedAbstract - LocalizedString! 言語ごとの問題の要約
visibility - Visibility! 問題の可視性
dockerImage - String 問題のDockerイメージ
localizedDescription - LocalizedString 言語ごとの問題の説明
github - String dockerImageのgithubリポジトリのURL
isOpenSource - Boolean ソースコードがオープンソースであるかどうか
license - String ソースコードのライセンス
locales - [Locale!]! 問題の対応言語
environments - [ProblemEnvironments!] 問題の環境変数
localizedIODescription - LocalizedString 問題のIOの説明
createdAt - String! 問題の作成日時
updatedAt - String! 問題の更新日時
owner - UserProfile 問題のオーナー
Example
{
  "id": "abc123",
  "alias": "xyz789",
  "localizedTitle": LocalizedString,
  "localizedSubtitle": LocalizedString,
  "localizedAbstract": LocalizedString,
  "visibility": "public",
  "dockerImage": "abc123",
  "localizedDescription": LocalizedString,
  "github": "abc123",
  "isOpenSource": false,
  "license": "abc123",
  "locales": ["ja"],
  "environments": [ProblemEnvironments],
  "localizedIODescription": LocalizedString,
  "createdAt": "xyz789",
  "updatedAt": "abc123",
  "owner": UserProfile
}

ProblemEnvironments

Description

問題の環境変数の型

Fields
Field Name Description
key - String!
localizedDescription - LocalizedString!
defaultValue - String
Example
{
  "key": "xyz789",
  "localizedDescription": LocalizedString,
  "defaultValue": "abc123"
}

ProblemEnvironmentsInput

Description

問題の環境変数の入力型

Fields
Input Field Description
key - String!
localizedDescription - LocalizedStringInput!
defaultValue - String
Example
{
  "key": "xyz789",
  "localizedDescription": LocalizedStringInput,
  "defaultValue": "abc123"
}

RunnerStatus

Description

EvaluatorやScorerにおける実行ステータス

Values
Enum Value Description

Success

成功

Failed

失敗
Example
"Success"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"abc123"

UniqueMatchAliasInput

Description

一意に識別する時に利用する競技のエイリアス

Fields
Input Field Description
competition - String! コンペのエイリアス
match - String! 競技のエイリアス
Example
{
  "competition": "xyz789",
  "match": "xyz789"
}

UpdateCompetitionInput

Fields
Input Field Description
alias - String エイリアス
localizedTitle - LocalizedStringInput 言語ごとのタイトル
localizedSubtitle - LocalizedStringInput 言語ごとのサブタイトル
localizedAbstract - LocalizedStringInput 言語ごとの要約
visibility - Visibility 可視性
openAt - AWSDateTime 開始日時
closeAt - AWSDateTime 終了日時
localizedDescription - LocalizedStringInput 言語ごとの説明
localizedRule - LocalizedStringInput 言語ごとのルール
mode - CompetitionMode コンペのモード
locales - [Locale!] コンペの対応言語
submissionURL - String コンペの提出用URL
Example
{
  "alias": "eccomp2024",
  "localizedTitle": LocalizedStringInput,
  "localizedSubtitle": LocalizedStringInput,
  "localizedAbstract": LocalizedStringInput,
  "visibility": "public",
  "openAt": AWSDateTime,
  "closeAt": AWSDateTime,
  "localizedDescription": LocalizedStringInput,
  "localizedRule": LocalizedStringInput,
  "mode": "server_evaluation",
  "locales": ["ja"],
  "submissionURL": "xyz789"
}

UpdateCompetitionResponse

Description

コンペ作成リクエストの結果

Fields
Field Name Description
id - String! 作成されたコンペのID
Example
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}

UpdateIndicatorInput

Fields
Input Field Description
alias - String 指標のエイリアス
localizedTitle - LocalizedStringInput 言語ごとの指標のタイトル
localizedSubtitle - LocalizedStringInput 言語ごとの指標のサブタイトル
localizedAbstract - LocalizedStringInput 言語ごとの指標の要約
visibility - Visibility 指標の可視性
dockerImage - String 指標のDockerイメージ
github - String dockerImageのgithubリポジトリのURL
isOpenSource - Boolean ソースコードがオープンソースであるかどうか
license - String ソースコードのライセンス
localizedDescription - LocalizedStringInput 言語ごとの指標の説明
localizedIODescription - LocalizedStringInput 指標のIOの説明
environments - [IndicatorEnvironmentsInput!] 指標の環境変数
locales - [Locale!] 指標の対応言語
Example
{
  "alias": "abc123",
  "localizedTitle": LocalizedStringInput,
  "localizedSubtitle": LocalizedStringInput,
  "localizedAbstract": LocalizedStringInput,
  "visibility": "public",
  "dockerImage": "xyz789",
  "github": "xyz789",
  "isOpenSource": true,
  "license": "xyz789",
  "localizedDescription": LocalizedStringInput,
  "localizedIODescription": LocalizedStringInput,
  "environments": [IndicatorEnvironmentsInput],
  "locales": ["ja"]
}

UpdateIndicatorResponse

Fields
Field Name Description
id - String! 更新された指標のID
Example
{"id": "xyz789"}

UpdateMatchInput

Description

競技更新リクエストの入力

Fields
Input Field Description
alias - String 競技のエイリアス
isTutorial - Boolean チュートリアルの競技かどうか
problemPublicEnvironments - [KeyValueInput!] 問題で使用される公開環境変数
indicatorPublicEnvironments - [KeyValueInput!] 指標で使用される公開環境変数
problemPrivateEnvironments - [KeyValueInput!] 問題で使用される非公開の環境変数
indicatorPrivateEnvironments - [KeyValueInput!] 指標で使用される非公開の環境変数
openAt - AWSDateTime 競技の開始日時
closeAt - AWSDateTime 競技の終了日時
Example
{
  "alias": "abc123",
  "isTutorial": false,
  "problemPublicEnvironments": [KeyValueInput],
  "indicatorPublicEnvironments": [KeyValueInput],
  "problemPrivateEnvironments": [KeyValueInput],
  "indicatorPrivateEnvironments": [KeyValueInput],
  "openAt": AWSDateTime,
  "closeAt": AWSDateTime
}

UpdateMatchResponse

Description

競技更新リクエストの出力

Fields
Field Name Description
id - String! 更新されたコンペのID
Example
{"id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b"}

UpdateProblemInput

Description

問題の更新リクエストの入力

Fields
Input Field Description
alias - String 問題のエイリアス
localizedTitle - LocalizedStringInput 言語ごとの問題のタイトル
localizedSubtitle - LocalizedStringInput 言語ごとの問題のサブタイトル
localizedAbstract - LocalizedStringInput 言語ごとの問題の要約
visibility - Visibility 問題の可視性
dockerImage - String 問題のDockerイメージ
github - String dockerImageのgithubリポジトリのURL
isOpenSource - Boolean ソースコードがオープンソースであるかどうか
license - String ソースコードのライセンス
localizedDescription - LocalizedStringInput 言語ごとの指標の説明
localizedIODescription - LocalizedStringInput 問題のIOの説明
environments - [ProblemEnvironmentsInput!] 問題の環境変数
locales - [Locale!] 問題の対応言語
Example
{
  "alias": "abc123",
  "localizedTitle": LocalizedStringInput,
  "localizedSubtitle": LocalizedStringInput,
  "localizedAbstract": LocalizedStringInput,
  "visibility": "public",
  "dockerImage": "abc123",
  "github": "abc123",
  "isOpenSource": false,
  "license": "abc123",
  "localizedDescription": LocalizedStringInput,
  "localizedIODescription": LocalizedStringInput,
  "environments": [ProblemEnvironmentsInput],
  "locales": ["ja"]
}

UpdateProblemResponse

Description

問題の更新リクエストの結果

Fields
Field Name Description
id - String! 更新された問題のID
Example
{"id": "xyz789"}

UserProfile

Fields
Field Name Description
id - String! ユーザID
name - String! ユーザ名
Example
{
  "id": "dd69dc7f-5d82-4f2c-9be7-420a6f77202b",
  "name": "xyz789"
}

VersionStatusMessage

Fields
Field Name Description
label - String! Clientでユーザに表示するメッセージのラベル (Error, Warning, Info, Success など)
labelColor - String! Clientでユーザに表示するメッセージのラベルの色を指定
message - String! Clientでユーザに表示するメッセージ
messageColor - String! Clientでユーザに表示するメッセージ自体の色を指定
Example
{
  "label": "Error",
  "labelColor": "red",
  "message": "This version is not latest. Please update opthub-client version.",
  "messageColor": "black"
}

Visibility

Description

コンペ、問題、指標で用いる可視性

Values
Enum Value Description

public

公開

private

非公開

limited

限定公開
Example
"public"