# 横断的関心事: 基本ドメイン型
#
# 複数 audience が参照する基本的な値の型を、audience ドキュメントから独立したファイルに置く。
# 「shared」のような寄せ集めフォルダは作らず、関心事の名前（domain）でファイルを分ける。
# audience ドキュメントは $ref でここを参照する（例: ../domain.yaml#/components/schemas/EmailAddress）。
#
# このファイルは単体で完結する OpenAPI ドキュメントであり、これ自体を入力に
# 独立したコード生成単位（domain パッケージ）を1度だけ生成する。paths は持たず components のみ。
# 各 audience はこのスキーマを schemaMappings で import し、再生成しない（型を1つに収束させる）。
openapi: 3.0.4
info:
  title: Domain Types
  version: 0.2.0
  description: 複数 audience が $ref で参照する横断的関心事の基本ドメイン型。
paths: {}
components:
  schemas:
    Timestamp:
      type: string
      format: date-time
      description: |
        日時（ミリ秒単位）。ISO 8601 / RFC 3339形式の文字列。タイムゾーンは常にUTC（`Z`）固定とし、
        数値オフセット（`±hh:mm`）は使用しない（表示時にローカル時刻へ変換するのは利用側の責務とする）。
        小数点以下3桁（ミリ秒、`.000`）まで表現する。
        `pattern`によるフォーマット制約を付けていないのは意図的（`format: date-time`は
        openapi-generator（spring generator）で`OffsetDateTime`型に変換され、jakarta validationは
        `@Pattern`を`CharSequence`以外の型に適用できないため、`pattern`を付けると生成コードが
        `HV000030`で最初のバリデーション実行時に例外を投げる）。
      example: "2026-08-05T05:30:00.000Z"

    UserId:
      type: string
      format: uuid
      description: |
        IX-UTMのユーザID。
        **pattern未決定**: ユーザーを表すデータモデルが現時点で未決定のため、本項目の値の形式
        （pattern）は未決定であり、今後定義され次第追記する。

    EmailAddress:
      type: string
      maxLength: 254
      pattern: '^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$'
      description: |
        メールアドレス。厳密なRFC 5322準拠チェックは`format: email`に委ねず、
        HTML5/WHATWG仕様の`input[type=email]`と同等のパターンで検証する。
        ローカル部は英数字と一般的な記号を許容し、ドメイン部は各ラベルが英数字で
        始まり英数字で終わること、およびドット区切りのラベルが2つ以上存在すること
        （単一ラベルドメインを不可とする）を要求する。最大長は254文字とする。
      example: "sample@email.com"

    CountryCode:
      type: string
      description: 国コード（DIPS API準拠）
      enum:
        - "001"
        - "002"
        - "003"
        - "004"
        - "005"
        - "006"
        - "007"
        - "008"
        - "009"
        - "010"
        - "011"
        - "012"
        - "013"
        - "014"
        - "015"
        - "016"
        - "017"
        - "018"
        - "019"
        - "020"
        - "021"
        - "022"
        - "023"
        - "024"
        - "025"
        - "026"
        - "027"
        - "028"
        - "029"
        - "030"
        - "031"
        - "032"
        - "033"
        - "034"
        - "035"
        - "036"
        - "037"
        - "038"
        - "039"
        - "040"
        - "041"
        - "042"
        - "043"
        - "044"
        - "045"
        - "046"
        - "047"
        - "048"
        - "049"
        - "050"
        - "051"
        - "052"
        - "053"
        - "054"
        - "055"
        - "056"
        - "057"
        - "058"
        - "059"
        - "060"
        - "061"
        - "062"
        - "063"
        - "064"
        - "065"
        - "066"
        - "067"
        - "068"
        - "069"
        - "070"
        - "071"
        - "072"
        - "073"
        - "074"
        - "075"
        - "076"
        - "077"
        - "078"
        - "079"
        - "080"
        - "081"
        - "082"
        - "083"
        - "084"
        - "085"
        - "086"
        - "087"
        - "088"
        - "089"
        - "090"
        - "091"
        - "092"
        - "093"
        - "094"
        - "095"
        - "096"
        - "097"
        - "098"
        - "099"
        - "100"
        - "101"
        - "102"
        - "103"
        - "104"
        - "105"
        - "106"
        - "107"
        - "108"
        - "109"
        - "110"
        - "111"
        - "112"
        - "113"
        - "114"
        - "115"
        - "116"
        - "117"
        - "118"
        - "119"
        - "120"
        - "121"
        - "122"
        - "123"
        - "124"
        - "125"
        - "126"
        - "127"
        - "128"
        - "129"
        - "130"
        - "131"
        - "132"
        - "133"
        - "134"
        - "135"
        - "136"
        - "137"
        - "138"
        - "139"
        - "140"
        - "141"
        - "142"
        - "143"
        - "144"
        - "145"
        - "146"
        - "147"
        - "148"
        - "149"
        - "150"
        - "151"
        - "152"
        - "153"
        - "154"
        - "155"
        - "156"
        - "157"
        - "158"
        - "159"
        - "160"
        - "161"
        - "162"
        - "163"
        - "164"
        - "165"
        - "166"
        - "167"
        - "168"
        - "169"
        - "170"
        - "171"
        - "172"
        - "173"
        - "174"
        - "175"
        - "176"
        - "177"
        - "178"
        - "179"
        - "180"
        - "181"
        - "182"
        - "183"
        - "184"
        - "185"
        - "186"
        - "187"
        - "188"
        - "189"
        - "190"
        - "191"
        - "192"
        - "193"
        - "194"
        - "195"
        - "196"
        - "197"
        - "198"
        - "199"
      x-enum-descriptions:
        - "日本"
        - "アフガニスタン・イスラム共和国"
        - "アルバニア共和国"
        - "アルジェリア民主人民共和国"
        - "アンドラ公国"
        - "アンゴラ共和国"
        - "アンティグア・バーブーダ"
        - "アルゼンチン共和国"
        - "アルメニア共和国"
        - "オーストラリア連邦"
        - "オーストリア共和国"
        - "アゼルバイジャン共和国"
        - "バハマ国"
        - "バーレーン王国"
        - "バングラデシュ人民共和国"
        - "バルバドス"
        - "ベラルーシ共和国"
        - "ベルギー王国"
        - "ベリーズ"
        - "ベナン共和国"
        - "ブータン王国"
        - "ボリビア多民族国"
        - "ボスニア・ヘルツェゴビナ"
        - "ボツワナ共和国"
        - "ブラジル連邦共和国"
        - "ブルネイ・ダルサラーム国"
        - "ブルガリア共和国"
        - "ブルキナファソ"
        - "ブルンジ共和国"
        - "カンボジア王国"
        - "カメルーン共和国"
        - "カナダ"
        - "カーボベルデ共和国"
        - "中央アフリカ共和国"
        - "チャド共和国"
        - "チリ共和国"
        - "中華人民共和国"
        - "コロンビア共和国"
        - "コモロ連合"
        - "クック諸島"
        - "コスタリカ共和国"
        - "コートジボワール共和国"
        - "クロアチア共和国"
        - "キューバ共和国"
        - "キプロス共和国"
        - "チェコ共和国"
        - "コンゴ民主共和国"
        - "デンマーク王国"
        - "ジブチ共和国"
        - "ドミニカ国"
        - "ドミニカ共和国"
        - "ドミニカ共和国"
        - "ドミニカ共和国"
        - "エクアドル共和国"
        - "エジプト・アラブ共和国"
        - "エルサルバドル共和国"
        - "赤道ギニア共和国"
        - "エリトリア国"
        - "エストニア共和国"
        - "エスワティニ王国"
        - "エチオピア連邦民主共和国"
        - "フィジー共和国"
        - "フィンランド共和国"
        - "フランス共和国"
        - "ガボン共和国"
        - "ガンビア共和国"
        - "ジョージア"
        - "ドイツ連邦共和国"
        - "ガーナ共和国"
        - "ギリシャ共和国"
        - "グレナダ"
        - "グアテマラ共和国"
        - "ギニア共和国"
        - "ギニアビサウ共和国"
        - "ガイアナ共和国"
        - "ハイチ共和国"
        - "ホンジュラス共和国"
        - "ハンガリー"
        - "アイスランド共和国"
        - "インド"
        - "インドネシア共和国"
        - "イラン・イスラム共和国"
        - "イラク共和国"
        - "アイルランド"
        - "イスラエル国"
        - "イタリア共和国"
        - "ジャマイカ"
        - "ヨルダン"
        - "カザフスタン共和国"
        - "ケニア共和国"
        - "キリバス共和国"
        - "コソボ共和国"
        - "クウェート国"
        - "キルギス共和国"
        - "ラオス人民民主共和国"
        - "ラトビア共和国"
        - "レバノン共和国"
        - "レソト王国"
        - "リベリア共和国"
        - "リビア"
        - "リヒテンシュタイン公国"
        - "リトアニア共和国"
        - "ルクセンブルク大公国"
        - "マダガスカル共和国"
        - "マラウイ共和国"
        - "マレーシア"
        - "モルディブ共和国"
        - "マリ共和国"
        - "マルタ共和国"
        - "マーシャル諸島共和国"
        - "モーリタニア・イスラム共和国"
        - "モーリシャス共和国"
        - "メキシコ合衆国"
        - "ミクロネシア連邦"
        - "モルドバ共和国"
        - "モナコ公国"
        - "モンゴル国"
        - "モンテネグロ"
        - "モロッコ王国"
        - "モザンビーク共和国"
        - "ミャンマー連邦共和国"
        - "ナミビア共和国"
        - "ナウル共和国"
        - "ネパール連邦民主共和国"
        - "オランダ王国"
        - "ニュージーランド"
        - "ニカラグア共和国"
        - "ニジェール共和国"
        - "ナイジェリア連邦共和国"
        - "ニウエ"
        - "北マケドニア共和国"
        - "ノルウェー王国"
        - "オマーン国"
        - "パキスタン・イスラム共和国"
        - "パラオ共和国"
        - "パナマ共和国"
        - "パプアニューギニア独立国"
        - "パラグアイ共和国"
        - "ペルー共和国"
        - "フィリピン共和国"
        - "ポーランド共和国"
        - "ポルトガル共和国"
        - "カタール国"
        - "コンゴ共和国"
        - "大韓民国"
        - "南アフリカ共和国"
        - "ルーマニア"
        - "ロシア連邦"
        - "ルワンダ共和国"
        - "セントクリストファー・ネービス"
        - "セントルシア"
        - "セントビンセント及びグレナディーン諸島"
        - "サモア独立国"
        - "サンマリノ共和国"
        - "サントメ・プリンシペ民主共和国"
        - "サウジアラビア王国"
        - "セネガル共和国"
        - "セルビア共和国"
        - "セーシェル共和国"
        - "シエラレオネ共和国"
        - "シンガポール共和国"
        - "スロバキア共和国"
        - "スロベニア共和国"
        - "ソロモン諸島"
        - "ソマリア連邦共和国"
        - "南スーダン共和国"
        - "スペイン王国"
        - "スリランカ民主社会主義共和国"
        - "スーダン共和国"
        - "スリナム共和国"
        - "スウェーデン王国"
        - "スイス連邦"
        - "シリア・アラブ共和国"
        - "タジキスタン共和国"
        - "タンザニア連合共和国"
        - "タイ王国"
        - "東ティモール民主共和国"
        - "トーゴ共和国"
        - "トンガ王国"
        - "トリニダード・トバゴ共和国"
        - "チュニジア共和国"
        - "トルコ共和国"
        - "トルクメニスタン"
        - "ツバル"
        - "ウガンダ共和国"
        - "ウクライナ"
        - "アラブ首長国連邦"
        - "英国（グレートブリテン及び北アイルランド連合王国）"
        - "アメリカ合衆国"
        - "ウルグアイ東方共和国"
        - "ウズベキスタン共和国"
        - "バヌアツ共和国"
        - "バチカン市国"
        - "ベネズエラ・ボリバル共和国"
        - "ベトナム社会主義共和国"
        - "イエメン共和国"
        - "ザンビア共和国"
        - "ジンバブエ共和国"
        - "‐（その他）"
      x-enum-varnames:
        - JAPAN
        - AFGHANISTAN
        - ALBANIA
        - ALGERIA
        - ANDORRA
        - ANGOLA
        - ANTIGUA_AND_BARBUDA
        - ARGENTINA
        - ARMENIA
        - AUSTRALIA
        - AUSTRIA
        - AZERBAIJAN
        - BAHAMAS
        - BAHRAIN
        - BANGLADESH
        - BARBADOS
        - BELARUS
        - BELGIUM
        - BELIZE
        - BENIN
        - BHUTAN
        - BOLIVIA
        - BOSNIA_AND_HERZEGOVINA
        - BOTSWANA
        - BRAZIL
        - BRUNEI
        - BULGARIA
        - BURKINA_FASO
        - BURUNDI
        - CAMBODIA
        - CAMEROON
        - CANADA
        - CABO_VERDE
        - CENTRAL_AFRICAN_REPUBLIC
        - CHAD
        - CHILE
        - CHINA
        - COLOMBIA
        - COMOROS
        - COOK_ISLANDS
        - COSTA_RICA
        - COTE_D_IVOIRE
        - CROATIA
        - CUBA
        - CYPRUS
        - CZECH_REPUBLIC
        - DEMOCRATIC_REPUBLIC_OF_THE_CONGO
        - DENMARK
        - DJIBOUTI
        - DOMINICA
        - DOMINICAN_REPUBLIC
        - DOMINICAN_REPUBLIC_052_UNVERIFIED
        - DOMINICAN_REPUBLIC_053_UNVERIFIED
        - ECUADOR
        - EGYPT
        - EL_SALVADOR
        - EQUATORIAL_GUINEA
        - ERITREA
        - ESTONIA
        - ESWATINI
        - ETHIOPIA
        - FIJI
        - FINLAND
        - FRANCE
        - GABON
        - GAMBIA
        - GEORGIA
        - GERMANY
        - GHANA
        - GREECE
        - GRENADA
        - GUATEMALA
        - GUINEA
        - GUINEA_BISSAU
        - GUYANA
        - HAITI
        - HONDURAS
        - HUNGARY
        - ICELAND
        - INDIA
        - INDONESIA
        - IRAN
        - IRAQ
        - IRELAND
        - ISRAEL
        - ITALY
        - JAMAICA
        - JORDAN
        - KAZAKHSTAN
        - KENYA
        - KIRIBATI
        - KOSOVO
        - KUWAIT
        - KYRGYZSTAN
        - LAOS
        - LATVIA
        - LEBANON
        - LESOTHO
        - LIBERIA
        - LIBYA
        - LIECHTENSTEIN
        - LITHUANIA
        - LUXEMBOURG
        - MADAGASCAR
        - MALAWI
        - MALAYSIA
        - MALDIVES
        - MALI
        - MALTA
        - MARSHALL_ISLANDS
        - MAURITANIA
        - MAURITIUS
        - MEXICO
        - MICRONESIA
        - MOLDOVA
        - MONACO
        - MONGOLIA
        - MONTENEGRO
        - MOROCCO
        - MOZAMBIQUE
        - MYANMAR
        - NAMIBIA
        - NAURU
        - NEPAL
        - NETHERLANDS
        - NEW_ZEALAND
        - NICARAGUA
        - NIGER
        - NIGERIA
        - NIUE
        - NORTH_MACEDONIA
        - NORWAY
        - OMAN
        - PAKISTAN
        - PALAU
        - PANAMA
        - PAPUA_NEW_GUINEA
        - PARAGUAY
        - PERU
        - PHILIPPINES
        - POLAND
        - PORTUGAL
        - QATAR
        - REPUBLIC_OF_THE_CONGO
        - SOUTH_KOREA
        - SOUTH_AFRICA
        - ROMANIA
        - RUSSIA
        - RWANDA
        - SAINT_KITTS_AND_NEVIS
        - SAINT_LUCIA
        - SAINT_VINCENT_AND_THE_GRENADINES
        - SAMOA
        - SAN_MARINO
        - SAO_TOME_AND_PRINCIPE
        - SAUDI_ARABIA
        - SENEGAL
        - SERBIA
        - SEYCHELLES
        - SIERRA_LEONE
        - SINGAPORE
        - SLOVAKIA
        - SLOVENIA
        - SOLOMON_ISLANDS
        - SOMALIA
        - SOUTH_SUDAN
        - SPAIN
        - SRI_LANKA
        - SUDAN
        - SURINAME
        - SWEDEN
        - SWITZERLAND
        - SYRIA
        - TAJIKISTAN
        - TANZANIA
        - THAILAND
        - TIMOR_LESTE
        - TOGO
        - TONGA
        - TRINIDAD_AND_TOBAGO
        - TUNISIA
        - TURKEY
        - TURKMENISTAN
        - TUVALU
        - UGANDA
        - UKRAINE
        - UNITED_ARAB_EMIRATES
        - UNITED_KINGDOM
        - UNITED_STATES
        - URUGUAY
        - UZBEKISTAN
        - VANUATU
        - VATICAN
        - VENEZUELA
        - VIETNAM
        - YEMEN
        - ZAMBIA
        - ZIMBABWE
        - OTHER
    PrefectureCode:
      type: string
      description: 都道府県コード
      enum:
        - "01"
        - "02"
        - "03"
        - "04"
        - "05"
        - "06"
        - "07"
        - "08"
        - "09"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "33"
        - "34"
        - "35"
        - "36"
        - "37"
        - "38"
        - "39"
        - "40"
        - "41"
        - "42"
        - "43"
        - "44"
        - "45"
        - "46"
        - "47"
        - "99"
      x-enum-descriptions:
        - 北海道
        - 青森県
        - 岩手県
        - 宮城県
        - 秋田県
        - 山形県
        - 福島県
        - 茨城県
        - 栃木県
        - 群馬県
        - 埼玉県
        - 千葉県
        - 東京都
        - 神奈川県
        - 新潟県
        - 富山県
        - 石川県
        - 福井県
        - 山梨県
        - 長野県
        - 岐阜県
        - 静岡県
        - 愛知県
        - 三重県
        - 滋賀県
        - 京都府
        - 大阪府
        - 兵庫県
        - 奈良県
        - 和歌山県
        - 鳥取県
        - 島根県
        - 岡山県
        - 広島県
        - 山口県
        - 徳島県
        - 香川県
        - 愛媛県
        - 高知県
        - 福岡県
        - 佐賀県
        - 長崎県
        - 熊本県
        - 大分県
        - 宮崎県
        - 鹿児島県
        - 沖縄県
        - その他
      x-enum-varnames:
        - HOKKAIDO
        - AOMORI
        - IWATE
        - MIYAGI
        - AKITA
        - YAMAGATA
        - FUKUSHIMA
        - IBARAKI
        - TOCHIGI
        - GUNMA
        - SAITAMA
        - CHIBA
        - TOKYO
        - KANAGAWA
        - NIIGATA
        - TOYAMA
        - ISHIKAWA
        - FUKUI
        - YAMANASHI
        - NAGANO
        - GIFU
        - SHIZUOKA
        - AICHI
        - MIE
        - SHIGA
        - KYOTO
        - OSAKA
        - HYOGO
        - NARA
        - WAKAYAMA
        - TOTTORI
        - SHIMANE
        - OKAYAMA
        - HIROSHIMA
        - YAMAGUCHI
        - TOKUSHIMA
        - KAGAWA
        - EHIME
        - KOCHI
        - FUKUOKA
        - SAGA
        - NAGASAKI
        - KUMAMOTO
        - OITA
        - MIYAZAKI
        - KAGOSHIMA
        - OKINAWA
        - OTHER

    PhoneNumber:
      type: string
      pattern: '^[0-9]{1,15}$'
      description: |
        電話番号。ハイフンなし・数字のみで最大15桁とする（桁数の根拠はITU-T勧告E.164）。
      example: "9012345678"

    AirspaceRestrictionType:
      type: string
      description: |
        空域制限の種別。飛行計画ドメイン（`flight-planning.yaml`）とGeoSpatialドメイン
        （`geospatial.yaml`）の双方が参照する共通の列挙値である。同じ意味の値を
        audienceごとに別名で持たないため、本ファイルで一元的に定義する。

        ※DIPS APIの展開状況に伴い、種別が変更される可能性あり
      enum:
        - AIRPORT_VICINITY
        - DENSELY_INHABITED_DISTRICT
        - SMALL_UAV_PROHIBITION_RED_ZONE
        - SMALL_UAV_PROHIBITION_YELLOW_ZONE
        - ORDINANCE_DESIGNATED_AREA
        - MANNED_AIRCRAFT_TAKEOFF_LANDING_AREA
        - EMERGENCY_OPERATIONS_AIRSPACE
        - OTHER_1
        - OTHER_2
      x-enum-descriptions:
        - 空港等の周辺空域
        - 人口集中地区（Densely Inhabited District）。国土地理院提供のデータセットに基づき、単一の静的PMTilesアーカイブとして配信する
        - 小型無人機等飛行禁止法で定めるエリア（レッドゾーン）
        - 小型無人機等飛行禁止法で定めるエリア（イエローゾーン）
        - 条例等で定めるエリア
        - 有人機離着陸エリア
        - 緊急時用務空域
        - その他１（DIPS側の正式な区分名）
        - その他２（DIPS側の正式な区分名）
