さまざまなプログラミング環境に適した論理エラーモデルを定義します。エラーモデルは次のような目的で設計されています。使い方が簡単で、ほとんどのユーザーが理解できる。柔軟で予期しないニーズに対応できる。種類のデータが含まれています。列挙値である必要がありますが、必要に応じて追加のエラーコードを受け入れることもできます。メッセージは、デベロッパーによるエラーの理解と解決に役立つよう、デベロッパー向けの英語にする必要があります。メッセージが必要な場合は、エラーの詳細にローカライズされたメッセージを入れるか、クライアントでローカライズします。オプションのエラーの詳細には、エラーに関する任意の情報を含めることができます。一般的なエラー条件で使用できるエラーの詳細タイプが事前に定義されています。メッセージはエラーモデルの論理表現ですが、必ずしも実際の送信形式ではありません。ライブラリやさまざまな送信プロトコルで公開されると、異なったマッピングが行われる場合があります。一部のエラーコードにマッピングされる可能性が高くなります。メッセージを使用すると、さまざまな環境で一貫性のある使用感をデベロッパーに提供できます。このエラーモデルの使用例には、次のようなものがあります。埋め込んで部分的エラーを表すことができます。通常のワークフローには複数のステップがあります。メッセージがある場合があります。レスポンスの中で直接使用する必要があります。非同期オペレーション。メッセージを使用して直接表す必要があります。セキュリティやプライバシー上の理由で必要とされる除去を行った後で、直接使用することができます。列挙値である必要があります。