テンプレートのコピー
/sites/management/api/v1/templates/{id}/copy
新規テンプレート名およびオプションの説明を指定して、テンプレートをコピーします。 テンプレート名は大/小文字が区別され、2つのテンプレートは同じ名前を共有できません。 テンプレート名に使用できるのは、文字、数字、ハイフンおよびアンダースコアのみです。 テンプレートをコピーしても、関連付けられているポリシーはコピーされないため、テンプレートのコピー後にサイト・ガバナンスが有効になっている場合、ポリシーがテンプレートに関連付けられるまで、ユーザーはテンプレートを作成したサイトに使用できません。
リリース19.4.1.での導入。
認可
この操作を起動するには、認証されたユーザー・アプリケーションまたはクライアント・アプリケーションが次のいずれかのロールを持っている必要があります:
- CECDeveloperUser
- CECSitesAdministrator
- CECContentAdministrator
この操作を起動するには、認証されたユーザーまたはクライアント・アプリケーションがリソースと共有され、次のいずれかの「共有」ロールを持っている必要があります:
- 所有者
- マネージャ
- 貢献者
- ダウンロード実行者
テンプレートのコピー・ジョブの進捗状況の取得
テンプレート・コピーの進行状況は、テンプレート・ジョブ・ステータスのリソースから監視できます。
詳細は、「テンプレート関連ジョブの進捗の取得」を参照してください。
テンプレートのコピーへのポリシーの関連付け
テンプレートをコピーした後、開発者はテンプレートのコンテンツを変更できます。 開発者が必要な変更を完了したら、サイト管理者は、active
ポリシーをコピーに関連付けて、新しいサイトの作成にテンプレートを使用できるようにします。
詳細は、「ポリシーとテンプレートの関連付け」を参照してください。
非同期処理
この操作「のみ」非同期処理をサポートしています。 respond-async
の値を持つPrefer
ヘッダーがリクエストに含まれている必要があります。 「承認済」レスポンスにはLocation
ヘッダーが含まれ、非同期処理に関する情報を取得するためにポーリングできる「ステータス・リソース」のロケーションを示します。
ステータスの読取りの詳細は、「テンプレート関連ジョブの進捗の取得」を参照してください。
パス代替識別子
「テンプレート」リソースのデフォルトの識別子は、「テンプレート識別子」です。 テンプレート・リソースは代替識別子をサポートしています。
nameテンプレート名
テンプレート識別子のかわりに、テンプレート名を使用してリソース・パスでテンプレートを一意に識別できます。 テンプレートのデフォルトのリソース・パス・パラメータはテンプレート識別子ですが、テンプレートでの作業時には、判読可能なテンプレート名が簡単になる場合があります。
http://api.example.com/sites/management/api/v1/templates/name:CafeSupremo/copy
リリース19.4.1.での導入。
成功したレスポンスの例
この操作は、次の成功(2xx)のレスポンスで応答します。 レスポンスHTTPステータス・コードとサンプル本体の完全なリストは、この操作の「レスポンス」に関する項を参照してください。
202Accepted - Copy a Template Specifying a Name and Description
コピーの新しい名前と説明を指定してテンプレートをコピーします。
リクエスト
POST https://api.example.com/sites/management/api/v1/templates/{id}/copy
リクエスト・ヘッダー
Prefer=respond-async
リクエスト本文
{ "name": "AccessThemeCopy", "description": "A copy of the access theme template." }
クライアント・エラー・レスポンスの例
この操作は次のクライアント・エラー(4xx)レスポンスで応答しますが、レスポンス本文に例外の詳細が示されるか、非同期ジョブを通じてレポートされます。 レスポンスHTTPステータス・コードとサンプル本体の完全なリストは、この操作の「レスポンス」に関する項を参照してください。
400Bad Request - Invalid Template Name
指定されたテンプレート名には使用できない文字または単語が含まれているため、使用できません。 テンプレート名が無効な理由がエラー・メッセージにレポートされます。
エラー・コード
OCE-SITEMGMT-009047
解決 - スペースの削除
テンプレート名を変更して、空白が含まれないようにしてください。
解決 - チェック文字
テンプレート名に使用できるのは、文字、数字、ハイフンおよびアンダースコアのみです。
このエラーが返される場所
- このエラー「次の場合があります」がレスポンス本文に返されました。
- このエラー「次と等しくない」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
templateName | 無効なテンプレート名です。 |
reason | テンプレート名が無効な理由。 有効な値は次のとおりです。
|
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのInvalidTemplateNameExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Invalid Template Name", "status": "400", "detail": "Template name '{templateName}' cannot be used to create a template.", "o:errorCode": "OCE-SITEMGMT-009047", "templateName": "CafeSupremo", "reason": "tooLong" }
403Forbidden - Storage Limit Reached
ストレージ転送制限に達しました。 請求限度は、システム管理者が使用可能なストレージ容量に設定されています。
エラー・コード
OCE-SITEMGMT-009098
解決 - ストレージ制限の増加
ストレージ制限を増やすシステム管理者を取得します。
このエラーが返される場所
- このエラー「行わない」がレスポンス本文に返されます。
- このエラー「次の場合があります」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
used | 使用済ストレージ(GB)。 |
limit | ストレージ制限(GB)。 |
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのStorageLimitReachedExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Storage Limit Reached", "status": "403", "detail": "Storage limit has been reached.", "o:errorCode": "OCE-SITEMGMT-009098", "used": 1.23456789, "limit": 1.23456789 }
リリース20.3.1で導入されました。
403禁止 - サイト管理者ロール必須
このタイプのリソースを作成するには、サイト管理者ロールが必要です。
エラー・コード
OCE-SITEMGMT-009140
解決 - サイト・システム設定の変更
サイト、テンプレート、テーマおよびコンポーネントの作成は、サイト管理者に制限できます。 管理者以外のユーザーがこのタイプのサイト・リソースを作成できるように、サイト・システム設定を更新します。
このエラーが返される場所
- このエラー「次の場合があります」がレスポンス本文に返されました。
- このエラー「次の場合があります」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
resourceType | サイト管理者のみが作成できるリソース・タイプ。 有効な値は次のとおりです。
|
name | 作成中のリソースの名前(使用可能な場合)。 |
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのSitesAdminRoleRequiredExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Sites Administrator Role Required", "status": "403", "detail": "The Sites Administrator role is required to create resources of this type.", "o:errorCode": "OCE-SITEMGMT-009140", "resourceType": "site", "name": "value" }
リリース22.5.2で導入されました。
404Not Found - Template Not Found
サイト・テンプレートが存在しないか、削除されたか、認証済ユーザーまたはクライアント・アプリケーションがテンプレートへのアクセス権を持っていません。
エラー・コード
OCE-SITEMGMT-009000
解決 - 識別子のチェック
テンプレート識別子が有効であることを確認してください。
解決 - メンバーシップのチェック
認証済ユーザーがテンプレートのメンバーまたはサイト管理者であることを確認してください。
このエラーが返される場所
- このエラー「次の場合があります」がレスポンス本文に返されました。
- このエラー「次の場合があります」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
template | 存在しないか、認証されたユーザーに表示されないテンプレート。 |
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのTemplateNotFoundExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Template Not Found", "status": "404", "detail": "Template does not exist or has been deleted, or the authenticated user or client application does not have access to the template.", "o:errorCode": "OCE-SITEMGMT-009000", "template": { "id": "F30F08EB205D44AD20B5A48D1B1B3DD7D74F45978AB6" } }
409Conflict - Template Already Exists
同じ名前またはIdのテンプレートがすでに存在します。 テンプレートの名前およびIdは、すべてのテンプレートを通して一意である必要があります。
エラー・コード
OCE-SITEMGMT-009040
解決 - テンプレート名の変更
コピーまたは名前の変更中に名前を衝突する場合は、別の名前を選択してください。
解決 - 競合解決名の変更
インポート中に名前を付ける場合は、テンプレート競合解決に別の名前を選択します。
解決 - 競合解決アクションの変更
インポート中にアイデンティティを衝突する場合は、テンプレートの競合解決タイプをoverwrite
、create
またはskip
に変更します。
このエラーが返される場所
- このエラー「次の場合があります」がレスポンス本文に返されました。
- このエラー「次の場合があります」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
template | テンプレートが重複しています。 |
name | 重複している名前です |
itemGuid | アイデンティティGUIDが重複しています。 |
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのTemplateAlreadyExistsExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Template Already Exists", "status": "409", "detail": "A template with the same name or identity already exists.", "o:errorCode": "OCE-SITEMGMT-009040", "template": { "id": "F30F08EB205D44AD20B5A48D1B1B3DD7D74F45978AB6" }, "name": "CafeSupremo", "itemGuid": "value" }
リリース19.4.1.での導入。
409Conflict - Template Deleted
ソフト削除テンプレートでは操作を実行できません。 このエラーは、includeDeleted
問合せパラメータがtrue
に設定されている場合にのみ発生
エラー・コード
OCE-SITEMGMT-009061
解決 - テンプレートのリストア
テンプレートをリストアしてから操作を再試行してください。
このエラーが返される場所
- このエラー「次の場合があります」がレスポンス本文に返されました。
- このエラー「次と等しくない」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
template | ソフト削除されるテンプレート。 |
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのTemplateDeletedExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Template Deleted", "status": "409", "detail": "The operation cannot be performed as the template has been soft deleted.", "o:errorCode": "OCE-SITEMGMT-009061", "template": { "id": "F30F08EB205D44AD20B5A48D1B1B3DD7D74F45978AB6" } }
リリース19.4.1.での導入。
409Conflict - Template Import In Progress
このエラーは、テンプレートのコピー(サイトの作成など)が行われるが、テンプレートのインポートによって上書きされる場合に発生します。
エラー・コード
OCE-SITEMGMT-009105
解決 - テンプレートのインポートが完了するまで待機
テンプレートのインポートが完了するまで待機し、再試行してください。
このエラーが返される場所
- このエラー「行わない」がレスポンス本文に返されます。
- このエラー「次の場合があります」は非同期ジョブ・ステータスで返されました。
例外詳細フィールド
このエラー・タイプでは、レスポンスに次のフィールド/値が含まれます:
フィールド名 | 説明 |
importedBy | 進行中のインポート・ジョブを作成したユーザーのフルネーム。 |
name | テンプレート名 |
この例外の詳細タイプの詳細は、swaggerドキュメントの定義セクションのTemplateImportInProgressExceptionDetailスキーマを参照してください。
レスポンス本文の例
{ "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1", "title": "Template Import In Progress", "status": "409", "detail": "Unable to copy template as it is in the progress of being re-imported.", "o:errorCode": "OCE-SITEMGMT-009105", "importedBy": "value", "name": "CafeSupremo" }
リリース20.4.2で導入されました。
リクエスト
- application/json
- id: string
テンプレートの不変識別子。
- includeDeleted(optional): boolean
削除対象としてマークされているリソースでは、この問合せパラメータが
true
に設定されているかぎり、読取り、変更およびサポート対象の拡張操作が可能です。includeDeleted
問合せパラメータを送信しない場合、読取り、変更および拡張操作に対するレスポンスは、リソースが完全に削除された場合に戻されるものと同じです。
- Prefer(optional): string
respond-async
ヘッダー値を使用してリクエストの非同期処理をリクエストします。
コピーの名前と説明。
object
- description(optional): string
最大長:
1000
オプションの説明。 説明の内容に制限はありません。任意の文字を含む1行または複数行を指定できます。
リリース19.4.1.での導入。 - name: string
最大長:
242
テンプレートの名前。
リリース19.4.1.での導入。
{
"name":"AccessThemeCopy",
"description":"A copy of the access theme template."
}
レスポンス
202レスポンス
400レスポンス
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- object InvalidTemplateNameExceptionDetail-allOf[1]
object
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- detail(optional): string
この問題の発生に固有の説明。 人間が判読できる、場合によっては複数行の詳細で問題を説明しています。
- instance(optional): string(uri)
エラーに関する詳細を提供するリンクへのURI。
- o:errorCode(optional): string
アプリケーション・エラー・コード。HTTPエラー・コードとは異なります。 このコードは、
title
やdetail
などのフィールドを比較するのではなく、特定のエラーをチェックするために使用する必要があります。 - o:errorDetails(optional): array o:errorDetails
階層構造に複数のエラーがある場合もあります。
- o:errorPath(optional): string
エラーが発生した場所を示すXPathまたはJSONパス。
- status(optional): integer(int32)
エラーに対応するHTTPステータス・コード。
- title(optional): string
問題の短く、判読可能なサマリー。 タイトルは、特定のエラーをチェックする方法としては使用しないでください。そのためには
o:errorCode
を使用してください。 - type(optional): string(uri)
問題のタイプを識別する絶対URI。 このURIが参照解除されると、「推奨」は、HTMLページなどの問題の判読可能なサマリーを提供します。
object
- reason(optional): string
テンプレート名が無効な理由。
有効な値は次のとおりです。
-
tooLong
- 名前が長すぎます。 -
invalidCharacters
- 名前に無効な文字が含まれています -
startWithSpace
- 名前が空白で始まります -
endWithSpace
- 名前が空白で終わる -
internalWord
- 名前が制限付きの内部語である -
empty
- 名前が空です
-
- templateName(optional): string
最大長:
242
無効なテンプレート名です。
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Invalid Template Name",
"status":"400",
"detail":"Template name '{templateName}' cannot be used to create a template.",
"o:errorCode":"OCE-SITEMGMT-009047",
"templateName":"CafeSupremo",
"reason":"tooLong"
}
401レスポンス
403レスポンス
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- object SitesAdminRoleRequiredExceptionDetail-allOf[1]
object
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- detail(optional): string
この問題の発生に固有の説明。 人間が判読できる、場合によっては複数行の詳細で問題を説明しています。
- instance(optional): string(uri)
エラーに関する詳細を提供するリンクへのURI。
- o:errorCode(optional): string
アプリケーション・エラー・コード。HTTPエラー・コードとは異なります。 このコードは、
title
やdetail
などのフィールドを比較するのではなく、特定のエラーをチェックするために使用する必要があります。 - o:errorDetails(optional): array o:errorDetails
階層構造に複数のエラーがある場合もあります。
- o:errorPath(optional): string
エラーが発生した場所を示すXPathまたはJSONパス。
- status(optional): integer(int32)
エラーに対応するHTTPステータス・コード。
- title(optional): string
問題の短く、判読可能なサマリー。 タイトルは、特定のエラーをチェックする方法としては使用しないでください。そのためには
o:errorCode
を使用してください。 - type(optional): string(uri)
問題のタイプを識別する絶対URI。 このURIが参照解除されると、「推奨」は、HTMLページなどの問題の判読可能なサマリーを提供します。
object
- name(optional): string
作成中のリソースの名前(使用可能な場合)。
リリース22.5.2で導入されました。 - resourceType(optional): string
サイト管理者のみが作成できるリソース・タイプ。
有効な値は次のとおりです。
-
site
- サイト・リソース -
template
- テンプレート・リソース -
theme
- テーマ・リソース -
component
- コンポーネント・リソース
-
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Sites Administrator Role Required",
"status":"403",
"detail":"The Sites Administrator role is required to create resources of this type.",
"o:errorCode":"OCE-SITEMGMT-009140",
"resourceType":"site",
"name":"value"
}
404レスポンス
- Cache-Control: string
キャッシュ・メカニズムのディレクティブ。
- Content-Length: string
レスポンス本文のサイズ。
- Content-Type: string
レスポンスのコンテンツ・タイプ。
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- object TemplateNotFoundExceptionDetail-allOf[1]
object
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- detail(optional): string
この問題の発生に固有の説明。 人間が判読できる、場合によっては複数行の詳細で問題を説明しています。
- instance(optional): string(uri)
エラーに関する詳細を提供するリンクへのURI。
- o:errorCode(optional): string
アプリケーション・エラー・コード。HTTPエラー・コードとは異なります。 このコードは、
title
やdetail
などのフィールドを比較するのではなく、特定のエラーをチェックするために使用する必要があります。 - o:errorDetails(optional): array o:errorDetails
階層構造に複数のエラーがある場合もあります。
- o:errorPath(optional): string
エラーが発生した場所を示すXPathまたはJSONパス。
- status(optional): integer(int32)
エラーに対応するHTTPステータス・コード。
- title(optional): string
問題の短く、判読可能なサマリー。 タイトルは、特定のエラーをチェックする方法としては使用しないでください。そのためには
o:errorCode
を使用してください。 - type(optional): string(uri)
問題のタイプを識別する絶対URI。 このURIが参照解除されると、「推奨」は、HTMLページなどの問題の判読可能なサマリーを提供します。
object
- template(optional): string
存在しないか、認証されたユーザーに表示されないテンプレート。
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Template Not Found",
"status":"404",
"detail":"Template does not exist or has been deleted, or the authenticated user or client application does not have access to the template.",
"o:errorCode":"OCE-SITEMGMT-009000",
"template":{
"id":"F30F08EB205D44AD20B5A48D1B1B3DD7D74F45978AB6"
}
}
409レスポンス
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- object TemplateAlreadyExistsExceptionDetail-allOf[1]
object
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
- detail(optional): string
この問題の発生に固有の説明。 人間が判読できる、場合によっては複数行の詳細で問題を説明しています。
- instance(optional): string(uri)
エラーに関する詳細を提供するリンクへのURI。
- o:errorCode(optional): string
アプリケーション・エラー・コード。HTTPエラー・コードとは異なります。 このコードは、
title
やdetail
などのフィールドを比較するのではなく、特定のエラーをチェックするために使用する必要があります。 - o:errorDetails(optional): array o:errorDetails
階層構造に複数のエラーがある場合もあります。
- o:errorPath(optional): string
エラーが発生した場所を示すXPathまたはJSONパス。
- status(optional): integer(int32)
エラーに対応するHTTPステータス・コード。
- title(optional): string
問題の短く、判読可能なサマリー。 タイトルは、特定のエラーをチェックする方法としては使用しないでください。そのためには
o:errorCode
を使用してください。 - type(optional): string(uri)
問題のタイプを識別する絶対URI。 このURIが参照解除されると、「推奨」は、HTMLページなどの問題の判読可能なサマリーを提供します。
object
- itemGuid(optional): string
アイデンティティGUIDが重複しています。
リリース22.4.3で導入されました。 - name(optional): string
最大長:
242
重複している名前です
リリース22.4.3で導入されました。 - template(optional): string
テンプレートが重複しています。
リリース19.4.1.での導入。
- object ExceptionDetail
HTTPエラー・コードおよびエラー・メッセージに加えて、リクエストが失敗したときにクライアントに追加情報を提供することが適切な場合もあります。 その場合、追加情報がレスポンス本文に含まれます。
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Template Already Exists",
"status":"409",
"detail":"A template with the same name or identity already exists.",
"o:errorCode":"OCE-SITEMGMT-009040",
"template":{
"id":"F30F08EB205D44AD20B5A48D1B1B3DD7D74F45978AB6"
},
"name":"CafeSupremo",
"itemGuid":"value"
}
{
"type":"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1",
"title":"Template Deleted",
"status":"409",
"detail":"The operation cannot be performed as the template has been soft deleted.",
"o:errorCode":"OCE-SITEMGMT-009061",
"template":{
"id":"F30F08EB205D44AD20B5A48D1B1B3DD7D74F45978AB6"
}
}