From 7b69c0fd5bc1d349df00fa586f96cf071743e13d Mon Sep 17 00:00:00 2001 From: vladimirhasko Date: Fri, 21 Apr 2023 17:50:33 +0000 Subject: [PATCH] recreate pr for ims_api_0406 as the original PR cannot be merged due to gitea bug --- docs/ims/api-ref/ALL_META.TXT.json | 38 +-- docs/ims/api-ref/CLASS.TXT.json | 45 ++-- .../api-ref/en-us_image_0000001508295281.png | Bin 54806 -> 0 bytes docs/ims/api-ref/en-us_image_0170178416.png | Bin 51740 -> 0 bytes docs/ims/api-ref/en-us_topic_0020092109.html | 18 +- docs/ims/api-ref/en-us_topic_0022473688.html | 9 +- docs/ims/api-ref/en-us_topic_0022473689.html | 18 +- docs/ims/api-ref/en-us_topic_0024735403.html | 18 +- docs/ims/api-ref/en-us_topic_0031615565.html | 27 +- docs/ims/api-ref/en-us_topic_0036994315.html | 2 +- docs/ims/api-ref/en-us_topic_0060804959.html | 52 ++-- docs/ims/api-ref/en-us_topic_0067360382.html | 222 ++++++++--------- docs/ims/api-ref/en-us_topic_0121671868.html | 15 -- docs/ims/api-ref/en-us_topic_0121671869.html | 59 ----- docs/ims/api-ref/en-us_topic_0121673684.html | 53 ---- docs/ims/api-ref/en-us_topic_0121682347.html | 235 ------------------ docs/ims/api-ref/en-us_topic_0125866389.html | 2 + docs/ims/api-ref/en-us_topic_0125866390.html | 2 +- docs/ims/api-ref/en-us_topic_0133188204.html | 4 +- docs/ims/api-ref/en-us_topic_0170155703.html | 66 ----- docs/ims/api-ref/en-us_topic_0171654733.html | 26 ++ .../public_sys-resources/imageclose.gif | Bin 1238 -> 0 bytes .../public_sys-resources/imageclosehover.gif | Bin 1172 -> 0 bytes .../api-ref/public_sys-resources/imagemax.gif | Bin 1267 -> 0 bytes .../public_sys-resources/imagemaxhover.gif | Bin 1199 -> 0 bytes .../public_sys-resources/macFFBgHack.png | Bin 1014 -> 0 bytes 26 files changed, 270 insertions(+), 641 deletions(-) delete mode 100644 docs/ims/api-ref/en-us_image_0000001508295281.png delete mode 100644 docs/ims/api-ref/en-us_image_0170178416.png delete mode 100644 docs/ims/api-ref/en-us_topic_0121671868.html delete mode 100644 docs/ims/api-ref/en-us_topic_0121671869.html delete mode 100644 docs/ims/api-ref/en-us_topic_0121673684.html delete mode 100644 docs/ims/api-ref/en-us_topic_0121682347.html delete mode 100644 docs/ims/api-ref/en-us_topic_0170155703.html create mode 100644 docs/ims/api-ref/en-us_topic_0171654733.html delete mode 100644 docs/ims/api-ref/public_sys-resources/imageclose.gif delete mode 100644 docs/ims/api-ref/public_sys-resources/imageclosehover.gif delete mode 100644 docs/ims/api-ref/public_sys-resources/imagemax.gif delete mode 100644 docs/ims/api-ref/public_sys-resources/imagemaxhover.gif delete mode 100644 docs/ims/api-ref/public_sys-resources/macFFBgHack.png diff --git a/docs/ims/api-ref/ALL_META.TXT.json b/docs/ims/api-ref/ALL_META.TXT.json index 72971c49..7d6bde52 100644 --- a/docs/ims/api-ref/ALL_META.TXT.json +++ b/docs/ims/api-ref/ALL_META.TXT.json @@ -590,9 +590,19 @@ "githuburl":"" }, { - "uri":"en-us_topic_0125866390.html", + "uri":"en-us_topic_0171654733.html", "product_code":"ims", "code":"60", + "des":"This section describes fine-grained permissions management for your IMS. If your account does not need individual IAM users, you may skip over this section.By default, ne", + "doc_type":"api", + "kw":"Introduction,Permission Policies and Supported Actions,API Reference", + "title":"Introduction", + "githuburl":"" + }, + { + "uri":"en-us_topic_0125866390.html", + "product_code":"ims", + "code":"61", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Image Management,Permission Policies and Supported Actions,API Reference", @@ -602,7 +612,7 @@ { "uri":"en-us_topic_0125866391.html", "product_code":"ims", - "code":"61", + "code":"62", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Image Tagging,Permission Policies and Supported Actions,API Reference", @@ -612,7 +622,7 @@ { "uri":"en-us_topic_0125866392.html", "product_code":"ims", - "code":"62", + "code":"63", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Image Schema,Permission Policies and Supported Actions,API Reference", @@ -622,7 +632,7 @@ { "uri":"en-us_topic_0125866393.html", "product_code":"ims", - "code":"63", + "code":"64", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Image Sharing,Permission Policies and Supported Actions,API Reference", @@ -632,7 +642,7 @@ { "uri":"en-us_topic_0125866394.html", "product_code":"ims", - "code":"64", + "code":"65", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Image Replication,Permission Policies and Supported Actions,API Reference", @@ -642,7 +652,7 @@ { "uri":"en-us_topic_0125866395.html", "product_code":"ims", - "code":"65", + "code":"66", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Image Quota,Permission Policies and Supported Actions,API Reference", @@ -652,7 +662,7 @@ { "uri":"en-us_topic_0135481403.html", "product_code":"ims", - "code":"66", + "code":"67", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Common Parameters", @@ -662,7 +672,7 @@ { "uri":"en-us_topic_0020091562.html", "product_code":"ims", - "code":"67", + "code":"68", "des":"An image is an ECS template containing mandatory software, such as an OS. The template may also contain application software, such as database software, and proprietary s", "doc_type":"api", "kw":"Image Attributes,Common Parameters,API Reference", @@ -672,7 +682,7 @@ { "uri":"en-us_topic_0020092110.html", "product_code":"ims", - "code":"68", + "code":"69", "des":"You can attach a custom tag to a private image to facilitate private image management.Data format of tagThe data format is key.value. If a key is added, a tag is added. I", "doc_type":"api", "kw":"Image Tag Data Formats,Common Parameters,API Reference", @@ -682,7 +692,7 @@ { "uri":"en-us_topic_0036994316.html", "product_code":"ims", - "code":"69", + "code":"70", "des":"You can use the image sharing function to share your private images with other users.Images can only be shared within a region.A system disk image or data disk image can ", "doc_type":"api", "kw":"Restrictions on Image Sharing,Common Parameters,API Reference", @@ -692,7 +702,7 @@ { "uri":"en-us_topic_0031617666.html", "product_code":"ims", - "code":"70", + "code":"71", "des":"For CoreOS, only the 1010.5.0 and 1068.10.0 versions are supported and it must have coreos-cloudinit installed. The automatic system upgrade may make ECSs created using t", "doc_type":"api", "kw":"Values of Related Parameters,Common Parameters,API Reference", @@ -702,7 +712,7 @@ { "uri":"en-us_topic_0121643825.html", "product_code":"ims", - "code":"71", + "code":"72", "des":"NormalReturned ValueDescription200 OKThe results of GET and PUT operations are returned as expected.201 CreatedThe results of the POST operation are returned as expected.", "doc_type":"api", "kw":"Status Codes,API Reference", @@ -712,7 +722,7 @@ { "uri":"en-us_topic_0022473689.html", "product_code":"ims", - "code":"72", + "code":"73", "des":"If the returned status code is 400, a customized error message will be returned. This section describes the meaning of each status code.", "doc_type":"api", "kw":"Error Codes,API Reference", @@ -722,7 +732,7 @@ { "uri":"en-us_topic_0024735403.html", "product_code":"ims", - "code":"73", + "code":"74", "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "doc_type":"api", "kw":"Change History,API Reference", diff --git a/docs/ims/api-ref/CLASS.TXT.json b/docs/ims/api-ref/CLASS.TXT.json index 90aa5d9c..c16a77f7 100644 --- a/docs/ims/api-ref/CLASS.TXT.json +++ b/docs/ims/api-ref/CLASS.TXT.json @@ -530,6 +530,15 @@ "p_code":"", "code":"59" }, + { + "desc":"This section describes fine-grained permissions management for your IMS. If your account does not need individual IAM users, you may skip over this section.By default, ne", + "product_code":"ims", + "title":"Introduction", + "uri":"en-us_topic_0171654733.html", + "doc_type":"api", + "p_code":"59", + "code":"60" + }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", "product_code":"ims", @@ -537,7 +546,7 @@ "uri":"en-us_topic_0125866390.html", "doc_type":"api", "p_code":"59", - "code":"60" + "code":"61" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -546,7 +555,7 @@ "uri":"en-us_topic_0125866391.html", "doc_type":"api", "p_code":"59", - "code":"61" + "code":"62" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -555,7 +564,7 @@ "uri":"en-us_topic_0125866392.html", "doc_type":"api", "p_code":"59", - "code":"62" + "code":"63" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -564,7 +573,7 @@ "uri":"en-us_topic_0125866393.html", "doc_type":"api", "p_code":"59", - "code":"63" + "code":"64" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -573,7 +582,7 @@ "uri":"en-us_topic_0125866394.html", "doc_type":"api", "p_code":"59", - "code":"64" + "code":"65" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -582,7 +591,7 @@ "uri":"en-us_topic_0125866395.html", "doc_type":"api", "p_code":"59", - "code":"65" + "code":"66" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -591,7 +600,7 @@ "uri":"en-us_topic_0135481403.html", "doc_type":"api", "p_code":"", - "code":"66" + "code":"67" }, { "desc":"An image is an ECS template containing mandatory software, such as an OS. The template may also contain application software, such as database software, and proprietary s", @@ -599,8 +608,8 @@ "title":"Image Attributes", "uri":"en-us_topic_0020091562.html", "doc_type":"api", - "p_code":"66", - "code":"67" + "p_code":"67", + "code":"68" }, { "desc":"You can attach a custom tag to a private image to facilitate private image management.Data format of tagThe data format is key.value. If a key is added, a tag is added. I", @@ -608,8 +617,8 @@ "title":"Image Tag Data Formats", "uri":"en-us_topic_0020092110.html", "doc_type":"api", - "p_code":"66", - "code":"68" + "p_code":"67", + "code":"69" }, { "desc":"You can use the image sharing function to share your private images with other users.Images can only be shared within a region.A system disk image or data disk image can ", @@ -617,8 +626,8 @@ "title":"Restrictions on Image Sharing", "uri":"en-us_topic_0036994316.html", "doc_type":"api", - "p_code":"66", - "code":"69" + "p_code":"67", + "code":"70" }, { "desc":"For CoreOS, only the 1010.5.0 and 1068.10.0 versions are supported and it must have coreos-cloudinit installed. The automatic system upgrade may make ECSs created using t", @@ -626,8 +635,8 @@ "title":"Values of Related Parameters", "uri":"en-us_topic_0031617666.html", "doc_type":"api", - "p_code":"66", - "code":"70" + "p_code":"67", + "code":"71" }, { "desc":"NormalReturned ValueDescription200 OKThe results of GET and PUT operations are returned as expected.201 CreatedThe results of the POST operation are returned as expected.", @@ -636,7 +645,7 @@ "uri":"en-us_topic_0121643825.html", "doc_type":"api", "p_code":"", - "code":"71" + "code":"72" }, { "desc":"If the returned status code is 400, a customized error message will be returned. This section describes the meaning of each status code.", @@ -645,7 +654,7 @@ "uri":"en-us_topic_0022473689.html", "doc_type":"api", "p_code":"", - "code":"72" + "code":"73" }, { "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", @@ -654,6 +663,6 @@ "uri":"en-us_topic_0024735403.html", "doc_type":"api", "p_code":"", - "code":"73" + "code":"74" } ] \ No newline at end of file diff --git a/docs/ims/api-ref/en-us_image_0000001508295281.png b/docs/ims/api-ref/en-us_image_0000001508295281.png deleted file mode 100644 index ec3abb85c4e87fdcfd64e390ee05842d55edaffe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54806 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%0AZD@BjI{u{Gzp=uHI(1CKApP%TB6 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μMKUP;j3tZz2lr=fW<}VJLdca4MNKQ^pP%GM| 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 API is an asynchronous one. If it is successfully called, the cloud service system receives the request. However, you need to use the asynchronous job query API to query the image creation status. For details, see Asynchronous Job Query.

You cannot export public images (such as Windows, SUSE, Red Hat, Oracle Linux, and Ubuntu) or private images created using these public images.

-

Constraints (Creating a System Disk Image Using a Data Disk)

  • Before using a data disk to create a system disk image, ensure that an OS has been installed on the data disk and has been optimized. For details about the optimization, see "Optimizing a Windows Private Image" and "Optimizing a Linux Private Image" in the Image Management Service User Guide.
  • The system cannot verify that an OS has been installed on the data disk. Therefore, ensure that the value of os_version is valid when creating a system disk image from the data disk. For details, see Values of Related Parameters.
+

Constraints (Creating a System Disk Image Using a Data Disk)

  • Before using a data disk to create a system disk image, ensure that an OS has been installed on the data disk and has been optimized. For details about the optimization, see "Optimizing a Windows Private Image" and "Optimizing a Linux Private Image" in the Image Management Service User Guide.
  • The system cannot verify that an OS has been installed on the data disk. Therefore, ensure that the value of os_version is valid when creating a system disk image from the data disk. For details, see Values of Related Parameters.

URI

POST /v2/cloudimages/action

@@ -79,7 +79,7 @@

Array of objects

Specifies tags of the image. This parameter is left blank by default.

-

Use either tags or image_tags.

+

Use either tags or image_tags.

enterprise_project_id

@@ -279,7 +279,7 @@

Array of objects

-

Specifies tags of the image. This parameter is left blank by default. Use either tags or image_tags.

+

Specifies tags of the image. This parameter is left blank by default. Use either tags or image_tags.

type

@@ -300,7 +300,7 @@

String

Specifies the enterprise project that the image belongs to.

-
  • If the value is 0 or left blank, the image belongs to the default enterprise project.
  • If the value is a UUID, the image belongs to the enterprise project corresponding to the UUID.

    For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

    +
    • If the value is 0 or left blank, the image belongs to the default enterprise project.
    • If the value is a UUID, the image belongs to the enterprise project corresponding to the UUID.

      For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

    @@ -319,7 +319,7 @@

    Integer

    -

    Specifies the minimum memory required by the image in the unit of MB. The default value is 0, indicating that the memory is not restricted.

    +

    Specifies the minimum memory required by the image in the unit of MB. The default value is 0, indicating that the memory is not restricted.

    data_images

    @@ -428,7 +428,7 @@

    Specifies tags of the image. The value is left blank by default.

    For detailed parameter descriptions, see Image Tag Data Formats.

    -

    Use either tags or image_tags.

    +

    Use either tags or image_tags.

    image_tags

    @@ -536,7 +536,7 @@

    Array of strings

    Specifies tags of the image. This parameter is left blank by default.

    -

    Use either tags or image_tags.

    +

    Use either tags or image_tags.

    image_tags

    @@ -546,7 +546,7 @@

    Array of objects

    Specifies tags of the image. This parameter is left blank by default.

    -

    Use either tags or image_tags.

    +

    Use either tags or image_tags.

    enterprise_project_id

    @@ -556,7 +556,7 @@

    String

    Specifies the enterprise project that the image belongs to.

    -
    • If the value is 0 or left blank, the image belongs to the default enterprise project.
    • If the value is a UUID, the image belongs to the enterprise project corresponding to the UUID.

      For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

      +
      • If the value is 0 or left blank, the image belongs to the default enterprise project.
      • If the value is a UUID, the image belongs to the enterprise project corresponding to the UUID.

        For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

      diff --git a/docs/ims/api-ref/en-us_topic_0022473688.html b/docs/ims/api-ref/en-us_topic_0022473688.html index d6d103b2..4d13a5b7 100644 --- a/docs/ims/api-ref/en-us_topic_0022473688.html +++ b/docs/ims/api-ref/en-us_topic_0022473688.html @@ -65,6 +65,7 @@

      String

      Specifies the job type.

      +
      • imsCreateImageByInstance: Creating a system disk image from a cloud server
      • imsImportImageJob: Creating a system disk image from an external image file
      • imsImportOvaImageJob: Creating an image from an OVA image file
      • imsVolumeCreateImageJob: Creating a data disk image from a cloud server
      • imsImportDataImageJob: Creating a data disk image from an external image file
      • imsCreateWholeImageByInstanceJob: Creating a full-ECS image from an ECS
      • imsCreateWholeImageByBackupJob: Creating a full-ECS image from a CBR or CSBS backup
      • imsNativeImportImageJob: Registering an image
      • imsNativeExportImageJob: Exporting image
      • imsAddImageMembersJob: Adding tenants that can use a shared image
      • imsDelImageMembersJob: Deleting tenants that can use a shared image
      • imsUpdateImageMembersJob: Updating status of tenants who will accept or reject shared images
      • imsCopyImageInRegionJob: Replicating images

      begin_time

      @@ -108,7 +109,7 @@
-
Table 2 Data structure description of the entities field

Parameter

+
@@ -202,7 +203,7 @@
Table 2 Data structure description of the entities field

Parameter

Type

-
Table 4 Data structure description of the SubJobResult field

Parameter

+
@@ -215,7 +216,7 @@
Table 4 Data structure description of the SubJobResult field

Parameter

Type

String

Specifies the sub-job status. The value can be:

-
  • SUCCESS: The sub-job is successfully executed.
  • FAIL: The sub-job failed to be executed.
  • RUNNING: The sub-job is in progress.
  • INIT: The sub-job is being initialized.
+
  • SUCCESS: The sub-job is successfully executed.
  • FAIL: The sub-job failed to be executed.
  • RUNNING: The sub-job is in progress.
  • INIT: The sub-job is being initialized.

job_id

@@ -272,7 +273,7 @@
-
- - - - - - - @@ -343,7 +343,7 @@

Response

  • Response parameters -
Table 5 Data structure description of the SubJobEntities field

Parameter

+
diff --git a/docs/ims/api-ref/en-us_topic_0022473689.html b/docs/ims/api-ref/en-us_topic_0022473689.html index 35bdb8be..7e3f3f48 100644 --- a/docs/ims/api-ref/en-us_topic_0022473689.html +++ b/docs/ims/api-ref/en-us_topic_0022473689.html @@ -148,7 +148,7 @@ - @@ -423,7 +423,7 @@ - @@ -553,11 +553,11 @@ - - - - @@ -1918,11 +1918,11 @@ - - - - + + + @@ -78,7 +86,7 @@ - @@ -213,7 +221,7 @@ - diff --git a/docs/ims/api-ref/en-us_topic_0031615565.html b/docs/ims/api-ref/en-us_topic_0031615565.html index 234ad760..47d1a694 100644 --- a/docs/ims/api-ref/en-us_topic_0031615565.html +++ b/docs/ims/api-ref/en-us_topic_0031615565.html @@ -52,7 +52,7 @@ - -
Table 5 Data structure description of the SubJobEntities field

Parameter

Type

forceCreate must be set to true.

forceCreate must be set to true.

+

forceCreate must be set to true.

Set forceCreate to true.

An error occurred when the value of asumeToken was obtained.

An error occurred when the value of asumeToken was obtained.

+

An error occurred when the value of asumeToken was obtained.

Contact technical support.

IMG.0056

The OS type is invalid.

+

Invalid OS version.

The OS type is invalid.

+

The OS version is invalid.

Select Windows or Linux.

+

Select a valid OS version.

400

@@ -1403,7 +1403,7 @@

The value of hw_firmware_type is not uefi or bios.

The value of hw_firmware_type is not uefi or bios.

+

The value of hw_firmware_type is not uefi or bios.

Set hw_firmware_type to uefi or bios.

IMG.0212

The value of architecture is not x86 or arm.

+

The value of Architecture must be x86 or Arm.

The value of architecture is not x86 or arm.

+

The value of Architecture must be x86 or Arm.

Set architecture to x86 or arm.

+

Set Architecture to x86 or arm.

400

diff --git a/docs/ims/api-ref/en-us_topic_0024735403.html b/docs/ims/api-ref/en-us_topic_0024735403.html index 5edcc14a..0f27f89c 100644 --- a/docs/ims/api-ref/en-us_topic_0024735403.html +++ b/docs/ims/api-ref/en-us_topic_0024735403.html @@ -8,7 +8,15 @@

2023-02-01

+

2023-03-23

+

Added the following content:

+

Introduction

+

Modified the following content:

+ +

2023-02-01

Modified the following content:

@@ -47,7 +55,7 @@

2020-08-12

Modified the following content:

-
A CBR backup can be used to create a full-ECS image. The following changes are involved: +
A CBR backup can be used to create a full-ECS image. The following changes are involved:

2019-01-30

Modified the following content:

- +

2018-09-30

@@ -191,7 +199,7 @@

2017-02-08

Modified the following content:
  • Updated the values of __os_version.
+
Modified the following content:
  • Updated the values of __os_version.

2016-10-29

Added the following content: +
Added the following content:

Boolean

Specifies whether the image is protected. A protected image cannot be deleted. The default value is false.

+

Specifies whether the image is protected. A protected image cannot be deleted. The default value is false.

container_format

@@ -62,7 +62,7 @@

String

Specifies the container format.

-

The default value is bare.

+

The default value is bare.

disk_format

@@ -81,6 +81,9 @@

Array of strings

Lists the image tags. The tag contains 1 to 255 characters. The value is left blank by default.

+
NOTE:

The tag is a key-value pair. Example:

+
"tagkey=tagvalue"
+

min_ram

@@ -89,7 +92,7 @@

Integer

Specifies the minimum memory size (MB) required for running the image. The parameter value depends on ECS specifications. The default value is 0.

+

Specifies the minimum memory size (MB) required for running the image. The parameter value depends on ECS specifications. The default value is 0.

min_disk

@@ -105,9 +108,6 @@
-

Parameters in the request body are strings of no more than 255 characters, and their values can be left blank. Example:

-
"key": "value"
-
  • Example request
    POST https://{Endpoint}/v2/images
    {
         "__os_version": "Ubuntu 14.04 server 64bit",
    @@ -117,8 +117,8 @@
         "min_ram": 1024,
         "name": "test",
         "tags": [
    -        "test",
    -        "image"
    +        "test=testvalue",
    +        "image=imagevalue"
         ],
         "visibility": "private",
         "protected": false
    @@ -160,7 +160,7 @@
     
  • String

    Specifies the container format.

    -

    The value is bare.

    +

    The value is bare.

    disk_format

    @@ -259,7 +259,7 @@

    String

    Specifies whether the image is registered. Only registered images can be queried on the portal. The value is true.

    +

    Specifies whether the image is registered. Only registered images can be queried on the portal. The value is true.

    __os_version

    @@ -303,7 +303,7 @@

    Specifies the platform type.

    Specifies the environment where the image is used. The value can be FusionCompute, Ironic, DataImage, or IsoImage.

    -
    • For an ECS image, the value is FusionCompute.
    • For a data disk image, the value is DataImage.
    • For a BMS image, the value is Ironic.
    • For an ISO image, the value is IsoImage.
    +
    • For an ECS image, the value is FusionCompute.
    • For a data disk image, the value is DataImage.
    • For a BMS image, the value is Ironic.
    • For an ISO image, the value is IsoImage.

    owner

    @@ -371,8 +371,9 @@ "visibility": "private", "virtual_env_type": "FusionCompute", "tags": [ - "test", - "image" + "test=testvalue", + "image=imagevalue" + ], "__platform": "Ubuntu", "__os_bit": "64", diff --git a/docs/ims/api-ref/en-us_topic_0036994315.html b/docs/ims/api-ref/en-us_topic_0036994315.html index 10c73426..e3a121b4 100644 --- a/docs/ims/api-ref/en-us_topic_0036994315.html +++ b/docs/ims/api-ref/en-us_topic_0036994315.html @@ -5,7 +5,7 @@

    Before exporting an image, ensure that you have the Tenant Administrator permission for OBS.

    -

    Constraints

    • The following private images cannot be exported:
      • Full-ECS images
      • Private images created from a Windows, SUSE, Red Hat, Ubuntu, or Oracle Linux public image
      +

      Constraints

      • The following private images cannot be exported:
        • Full-ECS images
        • Private images created from a Windows, SUSE, Red Hat, Ubuntu, or Oracle Linux public image
      • The image size must be less than 1 TB. Images larger than 128 GB support only fast export.

      URI

      POST /v1/cloudimages/{image_id}/file

      diff --git a/docs/ims/api-ref/en-us_topic_0060804959.html b/docs/ims/api-ref/en-us_topic_0060804959.html index 4f9450f0..fdd53b78 100644 --- a/docs/ims/api-ref/en-us_topic_0060804959.html +++ b/docs/ims/api-ref/en-us_topic_0060804959.html @@ -176,7 +176,7 @@

    String

    Specifies the field for sorting the query results. The value can be an attribute of the image: name, container_format, disk_format, status, id, size, or create_at. The default value is create_at.

    +

    Specifies the field for sorting the query results. The value can be an attribute of the image: name, container_format, disk_format, status, id, size, or created_at. The default value is created_at.

    sort_dir

    @@ -241,7 +241,7 @@

    String

    Specifies whether the image supports large-memory ECSs. If the image supports large-memory ECSs, the value is true. Otherwise, this parameter is not required. For details about the image OSs supported by large-memory ECSs, see Table 4.

    +

    Specifies whether the image supports large-memory ECSs. If the image supports large-memory ECSs, the value is true. Otherwise, this parameter is not required. For details about the image OSs supported by large-memory ECSs, see Table 4.

    __support_diskintensive

    @@ -250,7 +250,7 @@

    String

    Specifies whether the image supports disk-intensive ECSs. If the image supports disk-intensive ECSs, the value is true. Otherwise, this parameter is not required. For details about the image OSs supported by disk-intensive ECSs, see Table 4.

    +

    Specifies whether the image supports disk-intensive ECSs. If the image supports disk-intensive ECSs, the value is true. Otherwise, this parameter is not required. For details about the image OSs supported by disk-intensive ECSs, see Table 4.

    __support_highperformance

    @@ -259,7 +259,7 @@

    String

    Specifies whether the image supports high-performance ECSs. If the image supports high-performance ECSs, the value is true. Otherwise, this parameter is not required. For details about the image OSs supported by high-performance computing ECSs, see Table 4.

    +

    Specifies whether the image supports high-performance ECSs. If the image supports high-performance ECSs, the value is true. Otherwise, this parameter is not required. For details about the image OSs supported by high-performance computing ECSs, see Table 4.

    __support_xen_gpu_type

    @@ -277,7 +277,7 @@

    String

    Specifies whether the image supports GPU-accelerated ECSs on the KVM platform. See Table 3 for its value. If the image does not support GPU-accelerated ECSs on the KVM platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports GPU-accelerated ECSs on the KVM platform. See Table 3 for its value. If the image does not support GPU-accelerated ECSs on the KVM platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    __support_xen_hana

    @@ -287,7 +287,7 @@

    String

    Specifies whether the image supports HANA ECSs on the Xen platform. If yes, the value is true. Otherwise, this parameter is not required.

    -

    This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    This attribute cannot co-exist with __support_xen and __support_kvm.

    __support_kvm_infiniband

    @@ -297,7 +297,7 @@

    String

    Specifies whether the image supports ECSs with the InfiniBand NIC on the KVM platform. If yes, the value is true. Otherwise, this parameter is not required.

    -

    This attribute cannot co-exist with __support_xen.

    +

    This attribute cannot co-exist with __support_xen.

    created_at

    @@ -319,10 +319,10 @@

    String

    Specifies the time when the image was modified. Images can be queried by time. The value is in the format of Operator:UTC time.

    +

    Specifies the time when the image was modified. Images can be queried by time. The value is in the format of Operator:UTC time.

    The following operators are supported:

    • gt: greater than
    • gte: greater than or equal to
    • lt: less than
    • lte: less than or equal to
    • eq: equal to
    • neq: not equal to
    -

    The time format is yyyy-MM-ddThh:mm:ssZ or yyyy-MM-dd hh:mm:ss.

    +

    The time format is yyyy-MM-ddThh:mm:ssZ or yyyy-MM-dd hh:mm:ss.

    For example, to query images updated before Oct 28, 2018 10:00:00, set the value of updated_at to lt:2018-10-28T10:00:00Z.

    Parameter

    +
    @@ -362,7 +362,7 @@ -

    Parameter

    Type

    String

    Specifies the URL of the next page of images. When the last page of images is queried, there is no parameter next.

    +

    Specifies the URL of the next page of images. When the last page of images is queried, there is no parameter next.

    schema

    @@ -384,7 +384,7 @@
    -
    Table 2 Data structure description of the images field

    Parameter

    +
    @@ -445,7 +445,7 @@ - - - - - - - - - @@ -229,7 +229,7 @@ diff --git a/docs/ims/api-ref/en-us_topic_0170155703.html b/docs/ims/api-ref/en-us_topic_0170155703.html deleted file mode 100644 index 629b29d1..00000000 --- a/docs/ims/api-ref/en-us_topic_0170155703.html +++ /dev/null @@ -1,66 +0,0 @@ - - -

    Response

    -

    Status Code

    After sending a request, you will receive a response, including a status code, response header, and response body.

    -

    A status code is a group of digits, ranging from 1xx to 5xx. It indicates the status of a request. For more information, see Status Codes.

    -

    For example, if status code 201 is returned for calling the API used to , the request is successful.

    -
    -

    Response Header

    Similar to a request, a response also has a header, for example, Content-Type.

    -

    Figure 1 shows the response header fields for the API used to . The x-subject-token header field is the desired user token. This token can then be used to authenticate the calling of other APIs.

    -
    Figure 1 Header fields of the response to the request for obtaining a user token
    -
    -

    (Optional) Response Body

    The body of a response is often returned in structured format as specified in the Content-Type header field. The response body transfers content except the response header.

    -
    -

    The following is part of the response body for the API used to .

    -
    Table 2 Data structure description of the images field

    Parameter

    Type

    String

    Specifies whether the image is available. The value can be true. The value is true for all extension APIs by default. Common users can query only the images for which the value of this parameter is true.

    +

    Specifies whether the image is available. The value can be true. The value is true for all extension APIs by default. Common users can query only the images for which the value of this parameter is true.

    __lazyloading

    @@ -467,14 +467,14 @@

    String

    Specifies the image type. The following types are supported:

    -
    • Public image: The value is gold.
    • Private image: The value is private.
    • Shared image: The value is shared.
    +
    • Public image: The value is gold.
    • Private image: The value is private.
    • Shared image: The value is shared.

    protected

    Boolean

    Specifies whether the image is protected. Set it to true when you query public images. This parameter is optional when you query private images.

    +

    Specifies whether the image is protected. Set it to true when you query public images. This parameter is optional when you query private images.

    virtual_env_type

    @@ -519,7 +519,7 @@

    String

    Specifies the image status. The value can be one of the following:

    -
    • queued: indicates that the image metadata has already been created, and it is ready for the image file to upload.
    • saving: indicates that the image file is being uploaded to the backend storage.
    • deleted: indicates that the image has been deleted.
    • killed: indicates that an error occurs on the image uploading.
    • active: indicates that the image is available for use.
    +
    • queued: indicates that the image metadata has already been created, and it is ready for the image file to upload.
    • saving: indicates that the image file is being uploaded to the backend storage.
    • deleted: indicates that the image has been deleted.
    • killed: indicates that an error occurs on the image uploading.
    • active: indicates that the image is available for use.

    name

    @@ -547,7 +547,7 @@

    Integer

    Specifies the minimum memory size (MB) required for running the image. The parameter value depends on the ECS specifications. Generally, the value is 0.

    +

    Specifies the minimum memory size (MB) required for running the image. The parameter value depends on the ECS specifications. Generally, the value is 0.

    max_ram

    @@ -631,14 +631,14 @@

    String

    Specifies whether the image supports KVM. If yes, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports KVM. If yes, the value is true. Otherwise, this parameter is not required.

    __support_xen

    String

    Specifies whether the image supports Xen. If yes, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports Xen. If yes, the value is true. Otherwise, this parameter is not required.

    __support_largememory

    @@ -666,30 +666,30 @@

    String

    Specifies whether the image supports GPU-accelerated ECSs on the Xen platform. For details about the image OSs supported by GPU-accelerated ECSs, see Table 2. If the image does not support GPU-accelerated ECSs on the Xen platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports GPU-accelerated ECSs on the Xen platform. For details about the image OSs supported by GPU-accelerated ECSs, see Table 2. If the image does not support GPU-accelerated ECSs on the Xen platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    __support_kvm_gpu_type

    String

    Specifies whether the image supports GPU-accelerated ECSs on the KVM platform. See Table 3 for its value. If the image does not support GPU-accelerated ECSs on the KVM platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports GPU-accelerated ECSs on the KVM platform. See Table 3 for its value. If the image does not support GPU-accelerated ECSs on the KVM platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    __support_xen_hana

    String

    Specifies whether the image supports HANA ECSs on the Xen platform. If yes, the value is true. Otherwise, this parameter is not required.

    -

    This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports HANA ECSs on the Xen platform. If yes, the value is true. Otherwise, this parameter is not required.

    +

    This attribute cannot co-exist with __support_xen and __support_kvm.

    __support_kvm_infiniband

    String

    Specifies whether the image supports ECSs with the InfiniBand NIC on the KVM platform. If yes, the value is true. Otherwise, this parameter is not required.

    -

    This attribute cannot co-exist with __support_xen.

    +

    Specifies whether the image supports ECSs with the InfiniBand NIC on the KVM platform. If yes, the value is true. Otherwise, this parameter is not required.

    +

    This attribute cannot co-exist with __support_xen.

    __root_origin

    @@ -704,7 +704,7 @@

    String

    Specifies the ECS system disk slot number corresponding to the image.

    -

    Example value: 0

    +

    Example value: 0

    __support_fc_inject

    diff --git a/docs/ims/api-ref/en-us_topic_0067360382.html b/docs/ims/api-ref/en-us_topic_0067360382.html index 9c14ee4d..c219eb55 100644 --- a/docs/ims/api-ref/en-us_topic_0067360382.html +++ b/docs/ims/api-ref/en-us_topic_0067360382.html @@ -9,9 +9,9 @@
    - - @@ -19,194 +19,194 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/ims/api-ref/en-us_topic_0121671868.html b/docs/ims/api-ref/en-us_topic_0121671868.html deleted file mode 100644 index 574ed0b7..00000000 --- a/docs/ims/api-ref/en-us_topic_0121671868.html +++ /dev/null @@ -1,15 +0,0 @@ - - -

    Calling APIs

    -
    - - diff --git a/docs/ims/api-ref/en-us_topic_0121671869.html b/docs/ims/api-ref/en-us_topic_0121671869.html deleted file mode 100644 index b8b7a52e..00000000 --- a/docs/ims/api-ref/en-us_topic_0121671869.html +++ /dev/null @@ -1,59 +0,0 @@ - - -

    Authentication

    -
    Requests for calling an API can be authenticated using either of the following methods:
    • Token authentication: Requests are authenticated using tokens.
    • AK/SK authentication: Requests are encrypted using AK/SK pairs. AK/SK authentication is recommended because it is more secure than token authentication.
    -
    -

    Token Authentication

    The validity period of a token is 24 hours. When using a token for authentication, cache it to prevent frequently calling the IAM API used to obtain a user token.

    -
    -

    A token specifies temporary permissions in a computer system. During API authentication using a token, the token is added to requests to get permissions for calling the API. You can obtain a token by calling the Obtaining User Token API.

    -
    A cloud service can be deployed as either a project-level service or global service.
    • For a project-level service, you need to obtain a project-level token. When you call the API, set auth.scope in the request body to project.
    • For a global service, you need to obtain a global token. When you call the API, set auth.scope in the request body to domain.
    -
    -

    IMS is a project-level service. When you call the API, set auth.scope in the request body to project.

    -
    {
    -    "auth": {
    -        "identity": {
    -            "methods": [
    -                "password"
    -            ],
    -            "password": {
    -                "user": {
    -                    "name": "username",
    -                    "password": "********",
    -                    "domain": {
    -                        "name": "domainname"
    -                    }
    -                }
    -            }
    -        },
    -        "scope": {
    -            "project": {
    -                "name": "xxxxxxxx"
    -            }
    -        }
    -    }
    -}
    -

    After a token is obtained, the X-Auth-Token header field must be added to requests to specify the token when calling other APIs. For example, if the token is ABCDEFJ...., X-Auth-Token: ABCDEFJ.... can be added to a request as follows:

    -
    Table 1 Parameter description

    Parameter

    Mandatory

    +

    Mandatory

    Type

    +

    Type

    Description

    __isregistered

    No

    +

    No

    String

    +

    String

    Specifies whether the image is available. The value can be true. The value is true for all extension APIs by default. Common users can query only the images for which the value of this parameter is true.

    +

    Specifies whether the image is available. The value can be true. The value is true for all extension APIs by default. Common users can query only the images for which the value of this parameter is true.

    __imagetype

    No

    +

    No

    String

    +

    String

    Specifies the image type. The following types are supported:

    -
    • Public image: The value is gold.
    • Private image: The value is private.
    • Shared image: The value is shared.
    -
    NOTE:

    The __imagetype of images you share with other tenants or those other tenants share with you and you have accepted is shared. You can use field owner to distinguish the two types of shared images. You can use member_status to filter out shared images you have accepted.

    +
    • Public image: The value is gold.
    • Private image: The value is private.
    • Shared image: The value is shared.
    +
    NOTE:

    The __imagetype of images you share with other tenants or those other tenants share with you and you have accepted is shared. You can use field owner to distinguish the two types of shared images. You can use member_status to filter out shared images you have accepted.

    __whole_image

    No

    +

    No

    Boolean

    +

    Boolean

    Specifies whether the image is a full-ECS image. The value can be true or false.

    +

    Specifies whether the image is a full-ECS image. The value can be true or false.

    __system__cmkid

    No

    +

    No

    String

    +

    String

    Specifies the ID of the key used to encrypt the image. You can obtain the ID from the IMS console or by calling the Querying Image Details (Native OpenStack API) API.

    protected

    No

    +

    No

    Boolean

    +

    Boolean

    Specifies whether the image is protected. The value can be true or false. Set it to true when you query public images. This parameter is optional when you query private images.

    +

    Specifies whether the image is protected. The value can be true or false. Set it to true when you query public images. This parameter is optional when you query private images.

    visibility

    No

    +

    No

    String

    +

    String

    Specifies whether the image is available to other tenants. Available values include:

    -
    • public: public image
    • private: private image
    • shared: shared image
    +
    • public: public image
    • private: private image
    • shared: shared image

    owner

    No

    +

    No

    String

    +

    String

    Specifies the tenant to which the image belongs.

    id

    No

    +

    No

    String

    +

    String

    Specifies the image ID.

    status

    No

    +

    No

    String

    +

    String

    Specifies the image status. The value can be one of the following:

    -
    • queued: indicates that the image metadata has already been created, and it is ready for the image file to upload.
    • saving: indicates that the image file is being uploaded to the backend storage.
    • deleted: indicates that the image has been deleted.
    • killed: indicates that an error occurs on the image uploading.
    • active: indicates that the image is available for use.
    +

    Specifies the image status. The value can be:

    +
    • queued: indicates that the image metadata has already been created, and it is ready for the image file to upload.
    • saving: indicates that the image file is being uploaded to the backend storage.
    • deleted: indicates that the image has been deleted.
    • killed: indicates that an error occurs on the image uploading.
    • active: indicates that the image is available for use.

    name

    No

    +

    No

    String

    +

    String

    Specifies the image name. Exact matching is used. For detailed description, see Image Attributes.

    container_format

    No

    +

    No

    String

    +

    String

    Specifies the container type. The value is bare.

    +

    Specifies the container type. The value is bare.

    disk_format

    No

    +

    No

    String

    +

    String

    Specifies the image format. The value can be zvhd2, vhd, zvhd, raw, or qcow2. The default value is zvhd2.

    +

    Specifies the image format. The value can be zvhd2, vhd, zvhd, raw, or qcow2. The default value is zvhd2.

    min_ram

    No

    +

    No

    Integer

    +

    Integer

    Specifies the minimum memory size (MB) required for running the image. The parameter value depends on the ECS specifications. Generally, the value is 0.

    +

    Specifies the minimum memory size (MB) required for running the image. The parameter value depends on the ECS specifications. Generally, the value is 0.

    min_disk

    No

    +

    No

    Integer

    +

    Integer

    Specifies the minimum disk space (GB) required for running the image. The value ranges from 1 GB to 1024 GB.

    __os_bit

    No

    +

    No

    String

    +

    String

    Specifies the OS architecture, 32 bit or 64 bit.

    __platform

    No

    +

    No

    String

    +

    String

    Specifies the image platform type. The value can be Windows, Ubuntu, Red Hat, SUSE, CentOS, Debian, OpenSUSE, Oracle Linux, Fedora, Other, CoreOS, or EulerOS.

    +

    Specifies the image platform type. The value can be Windows, Ubuntu, Red Hat, SUSE, CentOS, Debian, OpenSUSE, Oracle Linux, Fedora, Other, CoreOS, or EulerOS.

    marker

    No

    +

    No

    String

    +

    String

    Specifies the start number from which images are queried. The value is the image ID.

    limit

    No

    +

    No

    Integer

    +

    Integer

    Specifies the number of images to be queried. The value is an integer and is 500 by default.

    +

    Specifies the number of images to be queried. The value is an integer and is 500 by default.

    sort_key

    No

    +

    No

    String

    +

    String

    Specifies the field for sorting the query results. The value can be an attribute of the image: name, container_format, disk_format, status, id, size, or created_at. The default value is created_at.

    +

    Specifies the field for sorting the query results. The value can be an attribute of the image: name, container_format, disk_format, status, id, size, or created_at. The default value is created_at.

    sort_dir

    No

    +

    No

    String

    +

    String

    Specifies whether the query results are sorted in ascending or descending order. Its value can be desc (default) or asc. This parameter is used together with parameter sort_key. The default value is desc.

    +

    Specifies whether the query results are sorted in ascending or descending order. Its value can be desc (default) or asc. This parameter is used together with parameter sort_key. The default value is desc.

    __os_type

    No

    +

    No

    String

    +

    String

    Specifies the image OS type. Available values include:

    • Linux
    • Windows
    • Other
    @@ -214,155 +214,155 @@

    tag

    No

    +

    No

    String

    +

    String

    Specifies a tag added to an image. Tags can be used as a filter to query images.

    -
    NOTE:

    The tagging function has been upgraded. If the tags added before the function upgrade are in the format of "Key.Value", query tags using "Key=Value". For example, an existing tag is a.b. After the tag function upgrade, query the tag using "tag=a=b".

    +
    NOTE:

    The tagging function has been upgraded. If the tags added before the function upgrade are in the format of "Key.Value", query tags using "Key=Value". For example, an existing tag is a.b. After the tag function upgrade, query the tag using "tag=a=b".

    member_status

    No

    +

    No

    String

    +

    String

    Specifies the member status. The value can be accepted, rejected, or pending. accepted: indicates that the shared image is accepted. rejected indicates that the image shared by others is rejected. pending indicates that the image shared by others needs to be confirmed. To use this parameter, set visibility to shared during the query.

    +

    Specifies the member status. The value can be accepted, rejected, or pending. accepted: indicates that the shared image is accepted. rejected indicates that the image shared by others is rejected. pending indicates that the image shared by others needs to be confirmed. To use this parameter, set visibility to shared during the query.

    __support_kvm

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports KVM. If yes, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports KVM. If yes, the value is true. Otherwise, this parameter is not required.

    __support_xen

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports Xen. If yes, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports Xen. If yes, the value is true. Otherwise, this parameter is not required.

    __support_largememory

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports large-memory ECSs. If the image supports large-memory ECSs, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports large-memory ECSs. If the image supports large-memory ECSs, the value is true. Otherwise, this parameter is not required.

    For the supported OSs, see Table 4.

    __support_diskintensive

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports disk-intensive ECSs. If the image supports disk-intensive ECSs, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports disk-intensive ECSs. If the image supports disk-intensive ECSs, the value is true. Otherwise, this parameter is not required.

    __support_highperformance

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports high-performance ECSs. If the image supports high-performance ECSs, the value is true. Otherwise, this parameter is not required.

    +

    Specifies whether the image supports high-performance ECSs. If the image supports high-performance ECSs, the value is true. Otherwise, this parameter is not required.

    __support_xen_gpu_type

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports GPU-accelerated ECSs on the Xen platform. See Table 2 for its value. If the image does not support GPU-accelerated ECSs on the Xen platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports GPU-accelerated ECSs on the Xen platform. See Table 2 for its value. If the image does not support GPU-accelerated ECSs on the Xen platform, this parameter is not required. This parameter cannot co-exist with __support_xen and __support_kvm.

    __support_kvm_gpu_type

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports GPU-accelerated ECSs on the KVM platform. See Table 3 for its value. If the image does not support GPU-accelerated ECSs on the KVM platform, this parameter is not required. This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports GPU-accelerated ECSs on the KVM platform. See Table 3 for its value. If the image does not support GPU-accelerated ECSs on the KVM platform, this parameter is not required. This parameter cannot co-exist with __support_xen and __support_kvm.

    __support_xen_hana

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports HANA ECSs on the Xen platform. If yes, the value is true. Otherwise, this parameter is not required.

    -

    This attribute cannot co-exist with __support_xen and __support_kvm.

    +

    Specifies whether the image supports HANA ECSs on the Xen platform. If yes, the value is true. Otherwise, this parameter is not required.

    +

    This parameter cannot co-exist with __support_xen and __support_kvm.

    __support_kvm_infiniband

    No

    +

    No

    String

    +

    String

    Specifies whether the image supports ECSs with the InfiniBand NIC on the KVM platform. If yes, the value is true. Otherwise, this parameter is not required.

    -

    This attribute cannot co-exist with __support_xen.

    +

    Specifies whether the image supports ECSs with the InfiniBand NIC on the KVM platform. If yes, the value is true. Otherwise, this parameter is not required.

    +

    This parameter cannot co-exist with __support_xen.

    virtual_env_type

    No

    +

    No

    String

    +

    String

    Specifies the environment where the image is used. The value can be FusionCompute, Ironic, DataImage, or IsoImage.

    -
    • For an ECS image (system disk image), the value is FusionCompute.
    • For a data disk image, the value is DataImage.
    • For a BMS image, the value is Ironic.
    • For an ISO image, the value is IsoImage.
    +

    Specifies the environment where the image is used. The value can be FusionCompute, Ironic, DataImage, or IsoImage.

    +
    • For an ECS system disk image, the value is FusionCompute.
    • For an ECS data disk image, the value is DataImage.
    • For a BMS image, the value is Ironic.
    • For an ISO image, the value is IsoImage.

    enterprise_project_id

    No

    +

    No

    String

    +

    String

    Specifies the enterprise project to which the images to be queried belong.
    • If the value is 0, images of enterprise project default are to be queried.
    • If the value is UUID, images of the enterprise project corresponding to the UUID are to be queried.
    • If the value is all_granted_eps, images of all enterprise projects are to be queried.

      For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

      +
    Specifies the enterprise project to which the images to be queried belong.
    • If the value is 0, images of enterprise project default are to be queried.
    • If the value is UUID, images of the enterprise project corresponding to the UUID are to be queried.

      For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

    created_at

    No

    +

    No

    String

    +

    String

    Specifies the time when the image was created. Images can be queried by time. The value is in the format of Operator:UTC time.

    +

    Specifies the time when the image was created. Images can be queried by time. The value is in the format of Operator:UTC time.

    The following operators are supported:

    • gt: greater than
    • gte: greater than or equal to
    • lt: less than
    • lte: less than or equal to
    • eq: equal to
    • neq: not equal to
    -

    The time format is yyyy-MM-ddThh:mm:ssZ or yyyy-MM-dd hh:mm:ss.

    -

    For example, to query images created before Oct 28, 2018 10:00:00, set the value of created_at as follows:

    +

    The time format is yyyy-MM-ddThh:mm:ssZ or yyyy-MM-dd hh:mm:ss.

    +

    For example, to query images created before Oct 28, 2018 10:00:00, set the value of created_at as follows:

    created_at=lt:2018-10-28T10:00:00Z

    updated_at

    No

    +

    No

    String

    +

    String

    Specifies the time when the image was modified. Images can be queried by time. The value is in the format of Operator:UTC time.

    +

    Specifies the time when the image was modified. Images can be queried by time. The value is in the format of Operator:UTC time.

    The following operators are supported:

    • gt: greater than
    • gte: greater than or equal to
    • lt: less than
    • lte: less than or equal to
    • eq: equal to
    • neq: not equal to
    -

    The time format is yyyy-MM-ddThh:mm:ssZ or yyyy-MM-dd hh:mm:ss.

    -

    For example, to query images updated before Oct 28, 2018 10:00:00, set the value of updated_at as follows:

    +

    The time format is yyyy-MM-ddThh:mm:ssZ or yyyy-MM-dd hh:mm:ss.

    +

    For example, to query images updated before Oct 28, 2018 10:00:00, set the value of updated_at as follows:

    updated_at=lt:2018-10-28T10:00:00Z

    1
    -2
    -3
    POST https://{{endpoint}}/v3/auth/projects
    -Content-Type: application/json
    -X-Auth-Token: ABCDEFJ....
    -
    - - - -

    AK/SK Authentication

    AK/SK authentication supports API requests with a body not larger than 12 MB. For API requests with a larger body, token authentication is recommended.

    -
    -

    In AK/SK authentication, AK/SK is used to sign requests and the signature is then added to the requests for authentication.

    -
    • AK: access key ID, which is a unique identifier used in conjunction with a secret access key to sign requests cryptographically.
    • SK: secret access key, which is used in conjunction with an AK to sign requests cryptographically. It identifies a request sender and prevents the request from being modified.
    -

    In AK/SK authentication, you can use an AK/SK to sign requests based on the signature algorithm or using the signing SDK.

    -

    The signing SDK is only used for signing requests and is different from the SDKs provided by services.

    -
    -
    - -
    - -
    - diff --git a/docs/ims/api-ref/en-us_topic_0121673684.html b/docs/ims/api-ref/en-us_topic_0121673684.html deleted file mode 100644 index 3c587140..00000000 --- a/docs/ims/api-ref/en-us_topic_0121673684.html +++ /dev/null @@ -1,53 +0,0 @@ - - -

    Obtaining a Project ID

    -

    Scenarios

    A project ID is required for some URLs when an API is called. Therefore, you need to obtain a project ID in advance. Two methods are available:

    - -
    -

    Obtain the Project ID by Calling an API

    You can obtain the project ID by calling the IAM API used to query project information based on the specified criteria.

    -

    The API used to obtain a project ID is GET https://{Endpoint}/v3/projects. {Endpoint} is the IAM endpoint and can be obtained from . For details about API authentication, see Authentication.

    -

    The following is an example response. The value of id is the project ID.

    -
    {
    -    "projects": [
    -        {
    -            "domain_id": "65382450e8f64ac0870cd180d14e684b",
    -            "is_domain": false,
    -            "parent_id": "65382450e8f64ac0870cd180d14e684b",
    -            "name": "project_name",
    -            "description": "",
    -            "links": {
    -                "next": null,
    -                "previous": null,
    -                "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99"
    -            },
    -            "id": "a4a5d4098fb4474fa22cd05f897d6b99",
    -            "enabled": true
    -        }
    -    ],
    -    "links": {
    -        "next": null,
    -        "previous": null,
    -        "self": "https://www.example.com/v3/projects"
    -    }
    -}
    -
    -

    Obtain a Project ID from the Console

    A project ID needs to be specified in the URIs of some APIs. Therefore, you need to obtain the project ID before calling APIs. The following procedure describes how to obtain a project ID:
    1. Log in to the management console.
    2. Click the username and select My Credentials from the drop-down list.

      On the My Credentials page, view project IDs in the project list.

      -
      Figure 1 Viewing project IDs
      -

      In multi-project scenarios, expand the region, and obtain your sub-project ID from the Project ID column.

      -
    -
    -
    -
    -
    - -
    - - - \ No newline at end of file diff --git a/docs/ims/api-ref/en-us_topic_0121682347.html b/docs/ims/api-ref/en-us_topic_0121682347.html deleted file mode 100644 index 9283c0eb..00000000 --- a/docs/ims/api-ref/en-us_topic_0121682347.html +++ /dev/null @@ -1,235 +0,0 @@ - - -

    Making an API Request

    -

    This section describes the structure of a REST API request, and uses the IAM API for obtaining a user token as an example to demonstrate how to call an API. The obtained token can then be used to authenticate the calling of other APIs.

    -

    Request URI

    A request URI is in the following format:

    -

    {URI-scheme}://{Endpoint}/{resource-path}?{query-string}

    -

    Although a request URI is included in the request header, most programming languages or frameworks require the request URI to be transmitted separately.

    - -
    - - - - - - - - - - - - - - - - -
    Table 1 URI parameter description

    Parameter

    -

    Description

    -

    URI-scheme

    -

    Protocol used to transmit requests. All APIs use HTTPS.

    -

    Endpoint

    -

    Domain name or IP address of the server bearing the REST service. The endpoint varies between services in different regions. It can be obtained from Regions and Endpoints.

    -

    resource-path

    -

    Access path of an API for performing a specified operation. Obtain the path from the URI of an API. For example, the resource-path of the API used to obtain a user token is /v3/auth/tokens.

    -

    query-string

    -

    Query parameter, which is optional. Ensure that a question mark (?) is included before each query parameter that is in the format of Parameter name=Parameter value. For example, ? limit=10 indicates that a maximum of 10 data records will be displayed.

    -
    -
    -

    To simplify the URI display in this document, each API is provided only with a resource-path and a request method. The URI-scheme of all APIs is HTTPS, and the endpoints of all APIs in the same region are identical.

    -
    -
    -

    Request Methods

    The HTTP protocol defines the following request methods that can be used to send a request to the server. -
    - - - - - - - - - - - - - - - - - - - - - - -
    Table 2 HTTP methods

    Method

    -

    Description

    -

    GET

    -

    Requests the server to return specified resources.

    -

    PUT

    -

    Requests the server to update specified resources.

    -

    POST

    -

    Requests the server to add resources or perform special operations.

    -

    DELETE

    -

    Requests the server to delete specified resources, for example, an object.

    -

    HEAD

    -

    Same as GET except that the server must return only the response header.

    -

    PATCH

    -

    Requests the server to update partial content of a specified resource.

    -

    If the resource does not exist, a new resource will be created.

    -
    -
    -
    -

    For example, in the case of the API used to obtain a user token, the request method is POST. The request is as follows:

    -
    1
    POST https://{{endpoint}}/v3/auth/tokens
    -
    - -
    -
    -

    Request Header

    You can also add additional header fields to a request, such as the fields required by a specified URI or HTTP method. For example, to request for the authentication information, add Content-Type, which specifies the request body type.

    -
    Common request header fields are as follows. -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Table 3 Common request header fields

    Parameter

    -

    Description

    -

    Mandatory

    -

    Example Value

    -

    Host

    -

    Specifies the server domain name and port number of the resources being requested. The value can be obtained from the URL of the service API. The value is in the format of Hostname:Port number. If the port number is not specified, the default port is used. The default port number for https is 443.

    -

    No

    -

    This field is mandatory for AK/SK authentication.

    -

    code.test.com

    -

    or

    -

    code.test.com:443

    -

    Content-Type

    -

    Specifies the type (or format) of the message body. The default value application/json is recommended. Other values of this field will be provided for specific APIs if any.

    -

    Yes

    -

    application/json

    -

    Content-Length

    -

    Specifies the length of the request body. The unit is byte.

    -

    No

    -

    3495

    -

    X-Project-Id

    -

    Specifies the project ID. Obtain the project ID by following the instructions in Obtaining a Project ID.

    -

    No

    -

    e9993fc787d94b6c886cbaa340f9c0f4

    -

    X-Auth-Token

    -

    Specifies the user token.

    -

    It is a response to the API for obtaining a user token (This is the only API that does not require authentication).

    -

    After the request is processed, the value of X-Subject-Token in the response header is the token value.

    -

    No

    -

    This field is mandatory for token authentication.

    -

    The following is part of an example token:

    -

    MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ

    -
    -
    -
    -

    In addition to supporting authentication using tokens, APIs support authentication using AK/SK, which uses SDKs to sign a request. During the signature, the Authorization (signature authentication) and X-Sdk-Date (time when a request is sent) headers are automatically added in the request.

    -

    For more details, see "Authentication Using AK/SK" in Authentication.

    -
    -

    The API used to obtain a user token does not require authentication. Therefore, only the Content-Type field needs to be added to requests for calling the API. An example of such requests is as follows:

    -
    1
    -2
    POST https://{{endpoint}}/v3/auth/tokens
    -Content-Type: application/json
    -
    - -
    -
    -

    (Optional) Request Body

    This part is optional. The body of a request is often sent in a structured format as specified in the Content-Type header field. The request body transfers content except the request header.

    -

    The request body varies between APIs. Some APIs do not require the request body, such as the APIs requested using the GET and DELETE methods.

    -

    In the case of the API used to obtain a user token, the request parameters and parameter description can be obtained from the API request. The following provides an example request with a body included. Replace username, domainname, ******** (login password), and xxxxxxxxxxxxxxxxxx (project name) with the actual values. Obtain a project name from Regions and Endpoints.

    -

    The scope parameter specifies where a token takes effect. You can set scope to an account or a project under an account. In the following example, the token takes effect only for the resources in a specified project. For more information about this API, see Obtaining a User Token.

    -
    -
     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    POST https://{{endpoint}}/v3/auth/tokens
    -Content-Type: application/json
    -
    -{
    -    "auth": {
    -        "identity": {
    -            "methods": [
    -                "password"
    -            ],
    -            "password": {
    -                "user": {
    -                    "name": "username",
    -                    "password": "********",
    -                    "domain": {
    -                        "name": "domainname"
    -                    }
    -                }
    -            }
    -        },
    -        "scope": {
    -            "project": {
    -                "name": "xxxxxxxxxxxxxxxxxx"
    -            }
    -        }
    -    }
    -}
    -
    - -
    -

    If all data required for the API request is available, you can send the request to call the API through curl, Postman, or coding. In the response to the API used to obtain a user token, x-subject-token is the desired user token. This token can then be used to authenticate the calling of other APIs.

    -
    -
    -
    - -
    - diff --git a/docs/ims/api-ref/en-us_topic_0125866389.html b/docs/ims/api-ref/en-us_topic_0125866389.html index c2660d61..524fd426 100644 --- a/docs/ims/api-ref/en-us_topic_0125866389.html +++ b/docs/ims/api-ref/en-us_topic_0125866389.html @@ -4,6 +4,8 @@

    Registering an Image

    PUT /v1/cloudimages/{image_id}/upload

    -
    NOTE:

    Before registering an image file, ensure that you have the Tenant Administrator permission for OBS.

    +
    NOTE:
    • Before registering an image file, ensure that you have the Tenant Administrator permission for OBS.
    • You have the permissions to use enterprise projects when you register an image only if you select the default enterprise project.

    ims:images:upload

    diff --git a/docs/ims/api-ref/en-us_topic_0133188204.html b/docs/ims/api-ref/en-us_topic_0133188204.html index f44e3d78..61915ae4 100644 --- a/docs/ims/api-ref/en-us_topic_0133188204.html +++ b/docs/ims/api-ref/en-us_topic_0133188204.html @@ -179,7 +179,7 @@

    Specifies the URL of the external image file in the OBS bucket.

    This parameter is mandatory if an external image file in the OBS bucket is used to create an image. The format is OBS bucket name:Image file name.

    -
    NOTE:

    The storage class of the OBS bucket must be Standard.

    +
    NOTE:

    The storage class of the OBS bucket must be Standard.

    String

    Specifies the enterprise project to which the image belongs.

    -
    • If the value is 0 or left blank, the image belongs to the default enterprise project.
    • If the value is a UUID, the image belongs to the enterprise project corresponding to the UUID.

      For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

      +
      • If the value is 0 or left blank, the image belongs to the default enterprise project.
      • If the value is a UUID, the image belongs to the enterprise project corresponding to the UUID.

        For more information about enterprise projects and how to obtain enterprise project IDs, see Enterprise Management User Guide.

     1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    -10
    -11
    -12
    {
    -    "token": {
    -        "expires_at": "2019-02-13T06:52:13.855000Z",
    -        "methods": [
    -            "password"
    -        ],
    -        "catalog": [
    -            {
    -                "endpoints": [
    -                    {
    -                        "region_id": "az-01",
    -......
    -
    - - -

    If an error occurs during API calling, an error code and a message will be displayed. The following shows an error response body.

    -
    1
    -2
    -3
    -4
    {
    -    "error_msg": "The format of message is error",
    -    "error_code": "AS.0001"
    -}
    -
    - -
    -

    In the response body, error_code is an error code, and error_msg provides information about the error.

    - -
    - -
    - - - \ No newline at end of file diff --git a/docs/ims/api-ref/en-us_topic_0171654733.html b/docs/ims/api-ref/en-us_topic_0171654733.html new file mode 100644 index 00000000..5967988f --- /dev/null +++ b/docs/ims/api-ref/en-us_topic_0171654733.html @@ -0,0 +1,26 @@ + + +

    Introduction

    +

    This section describes fine-grained permissions management for your IMS. If your account does not need individual IAM users, you may skip over this section.

    +

    By default, new IAM users do not have any permissions assigned. You need to add a user to one or more groups, and assign policies or roles to these groups. The user then inherits permissions from the groups it is a member of. This process is called authorization. After authorization, the user can perform specified operations on cloud services based on the permissions.

    +

    You can grant user permissions by using roles and policies.

    +
    • Roles: A type of coarse-grained authorization mechanism that defines permissions related to user responsibilities. This mechanism provides only a limited number of service-level roles for authorization.
    • Policies: A type of fine-grained authorization mechanism that defines permissions required to perform operations on specific cloud resources under certain conditions. This mechanism allows for API-level policies for authorization, meeting requirements for secure access control.
    +

    Policy-based authorization is useful if you want to allow or deny the access to an API.

    +
    +

    An account has all of the permissions required to call all APIs, but IAM users must have the required permissions specifically assigned. The permissions required for calling an API are determined by the actions supported by the API. Only users who have been granted permissions allowing the actions can call the API successfully. For example, if an IAM user queries images using an API, the user must have been granted permissions that allow the ims:images:list action.

    +

    Supported Actions

    IMS provides system-defined policies. You can also create custom policies for more specific access control. The following are related concepts:

    +
    • Permissions: Allow or deny certain operations.
    • APIs: APIs that will be called for performing certain operations.
    • Actions: Operations that will be allowed or denied.
    • Dependent actions: When assigning permissions for an action, you also need to assign permissions for the dependent actions.
    • IAM projects or enterprise projects: Applicable scope of custom policies. For example, if an action supports both IAM and enterprise projects, the policy that contains this action will take effect for user groups assigned in IAM and Enterprise Management. If an action supports only IAM projects, the policy will take effect only for user groups assigned in IAM.
    +

    √: supported; x: not supported

    +
    +

    IMS supports the following actions that can be defined in custom policies:

    +
    • Image Management, including actions supported by IMS's image management APIs, such as the APIs for querying images, updating image information, creating images, registering images, and exporting images.
    • Image Tagging, including actions supported by IMS's tag management APIs, such as the APIs for adding tags, deleting tags, and querying images.
    • Image Schema, including actions supported by IMS's image schema management APIs, such as the APIs for querying an image schema, querying an image list schema, querying an image member schema, and query an image member list schema.
    • Image Sharing, including actions supported by IMS's shared image APIs, such as the APIs for adding an image member, updating the status of image members, querying image member details, and deleting an image member.
    • Image Replication, including actions supported by IMS's image replication APIs, such as the API for replicating an image within a region.
    • Image Quota, including actions supported by IMS's image quota APIs, such as the API for querying image quotas.
    +

    Error messages returned for native OpenStack APIs are in XML format. JSON format of the fine-grained policy is not supported.

    +
    +
    +
    + + diff --git a/docs/ims/api-ref/public_sys-resources/imageclose.gif b/docs/ims/api-ref/public_sys-resources/imageclose.gif deleted file mode 100644 index 3a3344af4afdeedcbd8d49c6739d1e100142841b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1238 zcmZ?wbhEHb6krfwSj57xcJ11&Tet4ryZ7kPqyPW^XMh34|J)J20SYdOC5b@V#=fE; zF*!T6L?J0PJu}Z%>HY5gN(z}Nwo2iqz6QPp&Z!xh9#uuD!Bu`C$yM3OmMKd1b_zBX zRu#Dgxv3?I3Kh9IdBs*0wn~X9`AMl(KsHENUr7P1q$Jx`$q^)>0J76LzbI9~RL@v9 z*}%|H!OTq0(8Sct%uq+c$iUD@-vEfrbPY|cOwFu}%oU(O320kUN}5%WiyPD~AkS7Q zqokz3N?*Ucyj-u`STDaQUEk2s(h_8bk&!M?g>G?WUP)qwZeFo6%mkOz;^d;tf|AVq zJOz-6iAnjTCALaHmqNUdTj1*pH#o0Y59}emIIA zz^b}9q_QAYKPa_0zqBYh6{uVprWqJ^_$>k{1iHq`zbF$JDTz5Q`N^fZsd*)yF1AWQ z8NHOu6f0*7Co?Al3m0=|Hz!wTLqkUsXG>=zLt`g5XA?&!BSV-O*z_71I9eK+yO_E; zSy&hvx;k5$nmSv$xwx4dyBfNhxVXUddgc|EB<3Zj!tBii+6&cdf>*DVb5UwyNq$jC zetr%t1q5W|m*f{`1N{AbeZ0LqJ>1<~U7Vd99qjFFZLF;!Y#3Q(W~w5=#5%__*n4QdyV zXRDM^Qc_^0uU}qXu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bM zNoIbY0?5R~r2NtnTP2`NAzsKWfE$}vtOxdvUUGh}ennz|zM-B0$V)JVzP|XC=H|jx z7ncO3BHWAB;NpiyW)Z+ZoqU2Pda%GTJ1y;^Qsfi`|MIrh5Ij~R+$jC3rFV4s> zP;d@5Q_u*{%uC5HFV+OB_w}{%%quQQ%u7!7bg@+enxL1NnPO#X>1=9lW@_r@WZ`IN z=<4ibV(4aRVPt0NVq{?MV&MeS>yn>bnwy$e0@Is<&})WMFDNPG765H_NiE7OOHFYr z%Fk5*d)X=zw_A*Hng`XJg4-=7IQ8lS9itD5Sfq%C2?0|NhzU=&Kn^_Nr{)1udl4{M zGyebg_s{QNKYx7x_Vvr>Pai+LfA{vy>sK#dJb(7|$>T>4AKbrp_s;EGH*Z|OcJ<2T zOBXMkKX>-b=~E|996xsS$l*f=5A5H!chBx!J9li~wsp(qO&d3?U$=J6>QyUOEMK;C z$>K!|7tEhGch2ltGiOYnHg(G6NfRgZ_x1L4cXf8Ox3#u3H#IiY*VWckS5;P&mz9V~xOjJZzNKk;EkC%s= zi<5($jg^I&iIIUp@h1zAWM$9+l@y?Ign`*MLgebdMh%7=#f^GV`6oq~%OupNBpS~X u5MOie_{@!7oGG@??#=tAc88xep;u>9v^MK*8TL~W837UsORumnSOWmkrlE=e diff --git a/docs/ims/api-ref/public_sys-resources/imagemax.gif b/docs/ims/api-ref/public_sys-resources/imagemax.gif deleted file mode 100644 index 99c07dc2570d75fa74b38e02474edaa068eac3cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1267 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 CuQ@6J