All Products
Search
Document Center

Auto Scaling:ModifyEciScalingConfiguration

Last Updated:Jun 06, 2024

Modifies a scaling configuration for a scaling group that contains elastic container instances.

Operation description

If you want to change the name of a scaling configuration in a scaling group, make sure that the new name is unique within the scaling group.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer.

Authorization information

There is currently no authorization information disclosed in the API.

Request parameters

ParameterTypeRequiredDescriptionExample
ScalingConfigurationIdstringYes

The ID of the scaling configuration that you want to modify.

asc-bp16har3jpj6fjbx****
ScalingConfigurationNamestringYes

The name of the scaling configuration. The name must be 2 to 64 characters in length and can contain letters, digits, underscores (_), hyphens (-), and periods (.). The name must start with a letter or a digit.

The name of the scaling configuration must be unique within a scaling group in a region. If you do not specify this parameter, the value of the ScalingConfigurationId parameter is used.

test-modify
DescriptionstringYes
Note This parameter is unavailable.
desc
SecurityGroupIdstringYes

The ID of the security group with which you want to associate the elastic container instance. Elastic container instances that are associated with the same security group can access each other.

If you do not specify a security group, the system uses the default security group in the region that you selected. Make sure that the inbound rules of the security group contain the protocols and the port numbers of the containers that you want to expose. If you do not have a default security group in the region, the system creates a default security group, and then adds the declared container protocols and port numbers to the inbound rules of the security group.

sg-uf66jeqopgqa9hdn****
ContainerGroupNamestringYes

The name of the elastic container instance. The name must meet the following requirements:

  • The name must be 2 to 128 characters in length
  • The name can contain only lowercase letters, digits, and hyphens (-). It cannot start or end with a hyphen (-).
nginx-test
RestartPolicystringNo

The instance restart policy. Valid values:

  • Always: always restarts the elastic container instance.
  • Never: never restarts the elastic container instance.
  • OnFailure: restarts the elastic container instance upon failures.

Default value: Always.

Always
CpufloatNo

The number of vCPUs of the elastic container instance.

1.0
MemoryfloatNo

The memory size of the elastic container instance. Unit: GiB.

2.0
ResourceGroupIdstringNo

The ID of the resource group.

rg-uf66jeqopgqa9hdn****
DnsPolicystringNo

The Domain Name System (DNS) policy. Valid values:

  • None: uses the DNS that is set for the DnsConfig field.
  • Default: use the DNS that is set for the runtime environment.
Default
EnableSlsbooleanNo
Note This parameter is unavailable.
false
ImageSnapshotIdstringNo

The ID of the image cache.

imc-2zebxkiifuyzzlhl****
RamRoleNamestringNo

The name of the RAM role for the instance. You can use an instance RAM role to access both elastic container instances and Elastic Compute Service (ECS) instances. For more information, see Use an instance RAM role by calling API operations.

RamTestRole
TerminationGracePeriodSecondslongNo

The buffer time in which the program handles operations before the program is stopped. Unit: seconds.

60
AutoMatchImageCachebooleanNo

Specifies whether to automatically match the image cache.

Default value: false.

false
Ipv6AddressCountintegerNo

The number of IPv6 addresses.

1
ActiveDeadlineSecondslongNo

The validity period. Unit: seconds.

1000
SpotStrategystringNo

The bidding policy for the elastic container instance. Valid values:

  • NoSpot: The instance is a pay-as-you-go instance.
  • SpotWithPriceLimit: The instance is a preemptible instance with a user-defined maximum hourly price.
  • SpotAsPriceGo: The instance is a preemptible instance for which the market price at the time of purchase is used as the bid price.

Default value: NoSpot.

SpotPriceLimit
SpotPriceLimitfloatNo

The maximum hourly price of the preemptible elastic container instance. The value can be accurate to three decimal places.

If you set the SpotStrategy parameter to SpotWithPriceLimit, you must also specify the SpotPriceLimit parameter.

0.025
AutoCreateEipbooleanNo

Specifies whether to automatically create an elastic IP address (EIP) and bind the EIP to the elastic container instance.

true
EipBandwidthintegerNo

The bandwidth of the EIP.

Default value: 5. Unit: Mbit/s.

5
HostNamestringNo

The name of the elastic container instance.

test
IngressBandwidthlongNo

The maximum inbound bandwidth. Unit: bit/s.

1024000
EgressBandwidthlongNo

The maximum outbound bandwidth. Unit: bit/s.

1024000
CpuOptionsCoreintegerNo

The number of physical CPU cores. This parameter is not available for all instance types. For more information, see Specify custom CPU options.

2
CpuOptionsThreadsPerCoreintegerNo

The number of threads per core. This parameter is not available for all instance types. A value of 1 indicates that Hyper-Threading is disabled. For more information, see Specify custom CPU options.

2
EphemeralStorageintegerNo

The size of the temporary storage space. By default, an enhanced SSD (ESSD) of the PL1 level is used. Unit: GiB.

20
LoadBalancerWeightintegerNo

The weight of the elastic container instance as a backend server. Valid values: 1 to 100.

50
Tagsobject []No

Information about the tags.

KeystringNo

The key of the tag.

version
ValuestringNo

The value of the tag.

3
ImageRegistryCredentialsobject []No

Information about the image repository.

PasswordstringNo

The password that is used to access the image repository.

yourpaasword
ServerstringNo

The domain name of the image repository.

registry-vpc.cn-shanghai.aliyuncs.com
UserNamestringNo

The username that is used to access the image repository.

yourusername
Containersobject []No

The containers.

ReadinessProbe.TimeoutSecondsintegerNo

The timeout limit for a readiness probe to be complete. Unit: seconds. Default value: 1. Minimum value: 1.

1
ReadinessProbe.SuccessThresholdintegerNo

The minimum count of consecutive successes needed to consider a failed readiness probe as having recovered successfully. Default value: 1. Set the value to 1.

1
SecurityContext.Capability.AddsarrayNo

The permissions that you want to grant to the processes in the container. Valid values: NET_ADMIN and NET_RAW.

Note To use NET_RAW, you must submit a ticket.
stringNo

The permissions that you want to grant to the process in the container. Valid values: NET_ADMIN and NET_RAW.

Note To use NET_RAW, you must submit a ticket.
NET_RAW
ReadinessProbe.TcpSocket.PortintegerNo

The port detected by the TCP sockets for readiness probing.

8000
ReadinessProbe.HttpGet.SchemestringNo

The protocol type of the HTTP GET requests for readiness probing. Valid values:

  • HTTP
  • HTTPS
HTTP
LivenessProbe.PeriodSecondsintegerNo

The interval between consecutive liveness probes. Unit: seconds. Default value: 10. Minimum value: 1.

5
Portsobject []No

The ports.

ProtocolstringNo

The protocol type. Valid values:

  • TCP
  • UDP
TCP
PortintegerNo

The port number. Valid values: 1 to 65535.

80
SecurityContext.ReadOnlyRootFilesystembooleanNo

Specifies whether the root file system on which the container runs is read-only. Set the value to true.

true
EnvironmentVarsobject []No

The environment variables.

KeystringNo

The name of the environment variable. The name can be 1 to 128 characters in length and can contain letters, underscores (_), and digits. It cannot start with a digit. Specify the value in the [0-9a-zA-Z] format.

PATH
ValuestringNo

The value of the environment variable. The value can be up to 256 characters in length.

/usr/local/bin
FieldRef.FieldPathstringNo
Note This parameter is not available for use.
path
LivenessProbe.TcpSocket.PortintegerNo

The port detected by the TCP sockets for liveness probing.

1
TtybooleanNo

Specifies whether to enable the Interaction feature. Default value: false.

If the command is a /bin/bash command, set this parameter to true.

false
WorkingDirstringNo

The working directory of the container.

/usr/local/
LivenessProbe.HttpGet.SchemestringNo

The protocol type of the HTTP GET requests for liveness probing. Valid values:

  • HTTP
  • HTTPS
HTTP
ReadinessProbe.HttpGet.PortintegerNo

The port over which you want to send the HTTP GET requests for readiness probing.

8080
ArgsarrayNo

The container startup arguments. You can specify up to 10 arguments.

stringNo

The container startup argument. You can specify up to 10 arguments.

100
GpuintegerNo

The number of GPUs that you want to allocate to the container.

1
ReadinessProbe.InitialDelaySecondsintegerNo

The interval between the launch of the container and the onset of a readiness probe. Unit: seconds.

3
StdinbooleanNo

Specifies whether the container allocates buffer resources to standard input streams during its active runtime. If you do not specify this parameter, an end-of-file (EOF) error occurs when standard input streams in the container are read.

Default value: false.

false
MemoryfloatNo

The memory size that you want to allocate to the container. Unit: GiB.

0.5
NamestringNo

The name of the container image.

nginx
ImagestringNo

The image of the container.

registry-vpc.cn-hangzhou.aliyuncs.com/eci_open/nginx:latest
LivenessProbe.InitialDelaySecondsintegerNo

The interval between the launch of the container and the onset of a liveness probe. Unit: seconds.

5
VolumeMountsobject []No

The volume mounts of the container.

MountPropagationstringNo

The mount propagation setting of the volume. Mount propagation enables volumes mounted on one container to be shared among other containers within the same pod or across distinct pods residing on the same node. Valid values:

  • None: Subsequent mounts executed either on the volume itself or its subdirectories do not propagate to the already established volume mount.
  • HostToCotainer: Subsequent mounts executed either on the volume itself or its subdirectories propagate to the already established volume mount.
  • Bidirectional: This value is similar to HostToCotainer. Subsequent mounts executed either on the volume itself or its subdirectories propagate to the already established volume mount. In addition, any volume mounts executed on the container not only propagate back to the underlying host but also to all containers across every pod that uses the same volume.
None
MountPathstringNo

The directory within the container onto which you want to mount the volume.

Note The information stored within this directory will be overridden by the data present on the mounted volume. Specify this parameter with caution.
/pod/data
ReadOnlybooleanNo

Specifies whether the volume is read-only.

Default value: false.

false
NamestringNo

The volume name. The value of this parameter is the same as the value of Volume.N.Name.

default-volume1
SubPathstringNo

The subdirectory of the volume.

data2/
LivenessProbe.FailureThresholdintegerNo

The minimum count of consecutive failures that must occur for a liveness probe to be classified as failed.

Default value: 3.

3
ReadinessProbe.Exec.CommandsarrayNo

The commands executed in the container when using the command line to perform the health check.

stringNo

The command.

cat /tmp/healthy
ReadinessProbe.FailureThresholdintegerNo

The minimum count of consecutive failures that must occur for a readiness probe to be classified as failed.

Default value: 3.

3
ImagePullPolicystringNo

The image pulling policy. Valid values:

  • Always: Each time instances are created, image pulling is performed.
  • IfNotPresent: Image pulling is performed as needed. On-premises images are preferentially used. If no on-premises images are available, image pulling is performed.
  • Never: On-premises images are always used. Image pulling is not performed.
Always
StdinOncebooleanNo

Specifies whether standard input streams remain connected during multiple sessions when StdinOnce is set to true.

If StdinOnce is set to true, standard input streams are connected after the container is started, and remain idle until a client is connected to receive data. After the client is disconnected, streams are also disconnected, and remain disconnected until the container is restarted.

false
CpufloatNo

The number of vCPUs that you want to allocate to the container.

0.25
LivenessProbe.HttpGet.PortintegerNo

The port over which you want to send the HTTP GET requests for liveness probing.

8888
LivenessProbe.HttpGet.PathstringNo

The path to which you want to send the HTTP GET requests for liveness probing.

/healthyz
LivenessProbe.SuccessThresholdintegerNo

The minimum count of consecutive successes needed to consider a failed liveness probe as having recovered successfully. Default value: 1. Set the value to 1.

1
ReadinessProbe.PeriodSecondsintegerNo

The interval between consecutive readiness probes. Unit: seconds. Default value: 10. Minimum value: 1.

3
LivenessProbe.TimeoutSecondsintegerNo

The timeout limit for a liveness probe to be complete. Unit: seconds. Default value: 1. Minimum value: 1.

1
CommandsarrayNo

The command that you want to run by using the CLI for liveness probing within the container.

stringNo

The command that you want to run by using the CLI for liveness probing within the container.

sleep
SecurityContext.RunAsUserlongNo

The ID of the user that runs the container.

1000
ReadinessProbe.HttpGet.PathstringNo

The path to which you want to send the HTTP GET requests for readiness probing.

/healthz
LivenessProbe.Exec.CommandsarrayNo

The command executed in the container when using the command line to perform the health check.

stringNo

The command.

cat /tmp/healthy
LifecyclePostStartHandlerHttpGetHoststringNo

The IP address of the host to which you want to send the HTTP GET requests for configuring the postStart callback function.

10.0.XX.XX
LifecyclePostStartHandlerHttpGetPortintegerNo

The port over which you want to send the HTTP GET requests for configuring the postStart callback function.

5050
LifecyclePostStartHandlerHttpGetPathstringNo

The path to which you want to send the HTTP GET requests for configuring the postStart callback function.

/healthyz
LifecyclePostStartHandlerHttpGetSchemestringNo

The protocol type of the HTTP GET requests that you want to send for configuring the postStart callback function. Valid values:

  • HTTP
  • HTTPS
HTTPS
LifecyclePostStartHandlerExecsarrayNo

The commands that you want to run by using the CLI for configuring the postStart callback function within the container.

stringNo

The command that you want to run by using the CLI for configuring the postStart callback function within the container.

["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
LifecyclePostStartHandlerTcpSocketHoststringNo

The IP address of the host detected by the TCP sockets that you want to use for configuring the postStart callback function.

10.0.XX.XX
LifecyclePostStartHandlerTcpSocketPortintegerNo

The port detected by the TCP sockets that you want to use for configuring the postStart callback function.

80
LifecyclePreStopHandlerHttpGetHoststringNo

The IP address of the host to which you want to send the HTTP GET requests for configuring the preStop callback function.

10.0.XX.XX
LifecyclePreStopHandlerHttpGetPortintegerNo

The port over which you want to send the HTTP GET requests for configuring the preStop callback function.

80
LifecyclePreStopHandlerHttpGetPathstringNo

The path to which you want to send the HTTP GET requests for configuring the preStop callback function.

/healthyz
LifecyclePreStopHandlerHttpGetSchemestringNo

The protocol type of the HTTP GET requests that you want to send for configuring the preStop callback function. Valid values:

  • HTTP
  • HTTPS
HTTP
LifecyclePreStopHandlerExecsarrayNo

The commands that you want to run by using the CLI for configuring the preStop callback function within the container.

stringNo

The command that you want to run by using the CLI for configuring the preStop callback function within the container.

["/bin/sh", "-c","echo Hello from the preStop handler > /usr/share/message"]
LifecyclePreStopHandlerTcpSocketHoststringNo

The IP address of the host detected by the TCP sockets that you want to use for configuring the preStop callback function.

10.0.XX.XX
LifecyclePreStopHandlerTcpSocketPortintegerNo

The port detected by the TCP sockets that you want to use for configuring the preStop callback function.

80
Volumesobject []No

Information about the volumes.

TypestringNo

The type of HostPathVolume. Examples: File, Directory, and Socket.

EmptyDirVolume
DiskVolume.DiskSizeintegerNo

The storage size of the disk volume. Unit: GiB.

15
NFSVolume.PathstringNo

The path of the NFS volume.

/share
FlexVolume.FsTypestringNo

The type of the mounted file system. By default, the value of this parameter varies based on the script of FlexVolume.

ext4
DiskVolume.FsTypestringNo

The type of the disk volume. We recommend that you specify the FlexVolume.FsType parameter instead of the DiskVolume.FsType parameter.

xfs
HostPathVolume.TypestringNo

The type of host directory. For example: File, Directory, Socket, etc.

Directory
NFSVolume.ReadOnlybooleanNo

Specifies whether the NFS volume is read-only.

Default value: false.

false
HostPathVolume.PathstringNo

The absolute path to HostPathVolume.

/xx/xx/name
FlexVolume.OptionsstringNo

The FlexVolume objects. Each object is a key-value pair contained in a JSON string.

For example, when you use FlexVolume to mount a disk, the format of objects is {"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}.

{"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}
FlexVolume.DriverstringNo

The name of the FlexVolume driver.

flexvolume
ConfigFileVolumeDefaultModeintegerNo

The default permissions on ConfigFileVolume.

0644
NFSVolume.ServerstringNo

The endpoint of the NFS server.

3f9cd4a596-naw76.cn-shanghai.nas.aliyuncs.com
DiskVolume.DiskIdstringNo

The ID of the disk volume.

d-xx
NamestringNo

The name of the volume.

default-volume1
EmptyDirVolume.MediumstringNo

The storage medium of EmptyDirVolume. If you leave this parameter empty, the file system that backs the node is used as the storage medium. If you set this parameter to memory, the memory is used as the storage medium.

memory
ConfigFileVolumeConfigFileToPathobject []No

The paths to the configuration files.

PathstringNo

The relative path to the configuration file.

/usr/bin/
ModeintegerNo

The permissions on ConfigFileVolume.

0644
ContentstringNo

The content of the configuration file, which can be up to 32 KB in size.

bGl1bWk=
InitContainersobject []No

The init containers.

InitContainerEnvironmentVarsobject []No

The environment variables of the init container.

KeystringNo

The key of the environment variable. The key must be 1 to 128 characters in length. Specify the name in the [0-9a-zA-Z] format. The name can contain underscores and cannot start with a digit.

Path
ValuestringNo

The value of the environment variable. The value must be 0 to 256 characters in length.

/usr/bin/
FieldRef.FieldPathstringNo
Note This parameter is unavailable.
path
SecurityContext.Capability.AddsarrayNo

The permissions granted to processes in the container.

stringNo

The permission granted to processes in the container. Valid values: NET_ADMIN and NET_RAW.

Note To use NET_RAW, you must submit a ticket.
NET_RAW
ImagestringNo

The container image.

nginx
InitContainerPortsobject []No

The ports of the init container.

ProtocolstringNo

The type of the protocol. Valid values:

  • TCP
  • UDP
TCP
PortintegerNo

The port number. Valid values: 1 to 65535.

1
InitContainerVolumeMountsobject []No

Information about the volume mounts of the init container.

MountPropagationstringNo

The mount propagation setting of the volume. Mount propagation allows the sharing of volumes that are mounted on one container with other containers in the same pod, or even with other pods on the same node. Valid values:

  • None: The volume mount does not receive subsequent mounts that are mounted to this volume or its subdirectories.
  • HostToCotainer: The volume mount receives all subsequent mounts that are mounted to this volume or its subdirectories.
  • Bidirectional: This value is similar to HostToCotainer. The volume mount receives all subsequent mounts that are mounted to this volume or its subdirectories. In addition, all volume mounts that are created by the container are propagated back to the instance and to all containers of all pods that use the same volume.

Default value: None.

None
MountPathstringNo

The path where the container mounts the volume.

Note Data stored in the path of the container is overwritten by the content of the volume.
/usr/share/
ReadOnlybooleanNo

Specifies whether the mount path is read-only.

Default value: false.

false
NamestringNo

The name of the volume.

test-empty
SubPathstringNo

The subdirectory of the volume. The elastic container instance can mount different directories of the same volume to different subdirectories of containers.

Always
SecurityContext.ReadOnlyRootFilesystembooleanNo
Note This parameter is unavailable.
false
ImagePullPolicystringNo

The image pulling policy. Valid values:

  • Always: pulls images each time.
  • IfNotPresent: pulls images only if no on-premises images are available. On-premises images are preferentially used. If no on-premises images are available, image pulling is performed.
  • Never: never pulls images. On-premises images are always used. Image pulling is not performed.
Always
CpufloatNo

The number of vCPUs that you want to allocate to the container.

0.5
WorkingDirstringNo

The working directory.

/usr/local
CommandsarrayNo

The commands that you want to run to start the container.

stringNo

The commands that you want to run to start the container.

sleep
ArgsarrayNo

The startup parameter of the container.

stringNo

The arguments that are passed to the container startup command.

10
SecurityContext.RunAsUserlongNo

The ID of the user that runs the container.

587
GpuintegerNo

The number of GPUs that you want to allocate to the container.

1
MemoryfloatNo

The size of the memory. Unit: GiB.

1.0
NamestringNo

The name of the container.

test-init
DnsConfigNameServersarrayNo

The IP addresses of the DNS servers.

stringNo

The IP addresses of the DNS servers.

172.10.*.**
DnsConfigSearchsarrayNo

The DNS lookup domains.

stringNo

The DNS lookup domains.

svc.local.kubenetes
DnsConfigOptionsobject []No

The options. Each option is a name-value pair. The value in the name-value pair is optional.

ValuestringNo

The variable value of the option.

value
NamestringNo

The variable name of the option.

name
HostAliasesobject []No

Information about the hosts.

IpstringNo

The IP address that you want to add.

192.0.XX.XX
HostnamesarrayNo

The hostnames that you want to add.

stringNo

The hostnames that you want to add.

['hehe.com', 'haha.com']
SecurityContextSysCtlsobject []No

The system information of the security context in which the elastic container instance runs.

ValuestringNo

The variable value of the security context in which the elastic container instance runs.

65536
NamestringNo

The name of the security context in which the elastic container instance runs.

kernel.msgmax
NtpServersarrayNo

The domain names of the NTP server.

stringNo

The domain names of the NTP server.

ntp.cloud.aliyuncs.com
AcrRegistryInfosobject []No

Information about the Container Registry Enterprise Edition instance.

DomainsarrayNo

The domain names of the Container Registry Enterprise Edition instances. By default, all domain names of the Container Registry Enterprise Edition instances are displayed. You can specify one or more domain names. Separate multiple domain names with commas (,).

stringNo

The domain names of the Container Registry Enterprise Edition instances. By default, all domain names of the Container Registry Enterprise Edition instances are displayed. You can specify one or more domain names. Separate multiple domain names with commas (,).

*****-****-registry.cn-beijing.cr.aliyuncs.com
InstanceNamestringNo

The name of the Container Registry Enterprise Edition instance.

acr-test
InstanceIdstringNo

The ID of the Container Registry Enterprise Edition instance.

cri-nwj395hgf6f3****
RegionIdstringNo

The region ID of the Container Registry Enterprise Edition instance.

cn-hangzhou
CostOptimizationbooleanNo

Specifies whether to enable the cost optimization feature. Valid values:

  • true
  • false

Default value: false.

false
InstanceFamilyLevelstringNo

The level of the instance type, which is used to filter the instance types that meet the specified criteria. This parameter takes effect only if you set the CostOptimization parameter to true. Valid values:

  • EntryLevel: shared instance type. Instances of this level are the most cost-effective but may not provide stable computing performance in a consistent manner. Instances of this level are suitable for business scenarios in which the CPU utilization is low. For more information, see Shared instance families.
  • EnterpriseLevel: Instances of this level provide stable performance and dedicated resources, and are suitable for business scenarios that require high stability. For more information, see Instance family.
  • CreditEntryLevel: This value is valid only for burstable instances. CPU credits are used to ensure computing performance. Instances of this level are suitable for scenarios in which the CPU utilization is low but may fluctuate in specific cases. For more information, see the Overview topic of burstable instances.
EnterpriseLevel

Response parameters

ParameterTypeDescriptionExample
object
RequestIdstring

The ID of the request.

89945DD3-9072-47D0-A318-353284CF****

Examples

Sample success responses

JSONformat

{
  "RequestId": "89945DD3-9072-47D0-A318-353284CF****"
}

Error codes

HTTP status codeError codeError message
403Forbidden.RiskControlForbidden.RiskControl

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2024-01-23The Error code has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 403
2023-11-14The Error code has changed. The request parameters of the API has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 403
Input ParametersThe request parameters of the API has changed.
    Added Input Parameters: DataCacheBucket
    Added Input Parameters: DataCachePL
    Added Input Parameters: DataCacheProvisionedIops
    Added Input Parameters: DataCacheBurstingEnabled
2023-10-11The Error code has changed. The request parameters of the API has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 403
Input ParametersThe request parameters of the API has changed.
    Added Input Parameters: InstanceTypes
2023-07-12The Error code has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 403