Skip To Content
ArcGIS Developers
Dashboard

Edit (Default Properties)

Description

This operation edits the default scaling and resource allocation properties of a specific microservice within an organization. Once the default properties have been updated, all newly published microservices that match the type, provider, and mode of the default template will have the updated properties assigned to them. Preexisting deployments will need to have their properties individually updated using the edit operation.

Request parameters

ParameterDetails
propertyJson

JSON object representing the default property template that specifies the scaling (min & max) and resource allocations (memoryMin, cpuMin, memoryMax, cpuMax) for a particular microservice type. For more information, see the Template properties section below.

Example

propertyJson={
  "mode": "Dedicated",
  "provider": "ArcObjects11",
  "id": "pflhvjnd6z3hy56dkfo55",
  "type": "GPSyncServer",
  "spec": {
    "replicas": {
      "min": 1,
      "max": 1
    },
    "containers": [
      {
        "name": "main-container",
        "resources": {
          "memoryMin": "1.5Gi",
          "memoryMax": "5Gi",
          "cpuMin": "0.125",
          "cpuMax": "2"
        },
        "containerImageKey": "GP_SERVER"
      },
      {
        "name": "filebeat",
        "resources": {
          "memoryMin": "32Mi",
          "memoryMax": "50Mi",
          "cpuMin": "0.05",
          "cpuMax": "0.25"
        },
        "containerImageKey": "FILEBEAT"
      }
    ]
  },
  "revision": 1618223886566
}
f

The response format. The default format is html.

Values: html | json | pjson

Template properties

The example below demonstrates a full JSON object of a property template.

{
  "mode": "Dedicated",
  "provider": "ArcObjects11",
  "id": "pflhvjnd6z3hy56dkfo55",
  "type": "GPSyncServer",
  "spec": {
    "replicas": {
      "min": 1,
      "max": 1
    },
    "containers": [
      {
        "name": "main-container",
        "resources": {
          "memoryMin": "1.5Gi",
          "memoryMax": "5Gi",
          "cpuMin": "0.125",
          "cpuMax": "2"
        },
        "containerImageKey": "GP_SERVER"
      },
      {
        "name": "filebeat",
        "resources": {
          "memoryMin": "32Mi",
          "memoryMax": "50Mi",
          "cpuMin": "0.05",
          "cpuMax": "0.25"
        },
        "containerImageKey": "FILEBEAT"
      }
    ]
  },
  "revision": 1618223886566
}
The following sections outline the individual properties included in the property template JSON object that can, and cannot, be updated using this operation

Editable properties

The following properties can be updated using the edit operation.

Note:

When updating the resource allocations for a microserivce template (cpuMin, cpuMax, memoryMin, memoryMax), it is the main-container resources object that must be updated to affect the change.

PropertyDetails
replicas

The number of replicas for the microservice. Both min and max values will need to be the same, as there is no auto-scaling. The default value for both min and max are 1.

Example

"replicas": {
  "min": 1,
  "max": 1
},
resources

The minimum and maximum resource allocations for the microservice, including the minimum memory (memoryMin) and minimum CPU (cpuMin) resources required for the microservice to start. The default values for memoryMin, cpuMin, memoryMax, and cpuMax are outlined in the example below.

Example

"resources": {
  "memoryMin": "500Mi",
  "memoryMax": "2Gi",
  "cpuMin": "0.125",
  "cpuMax": "2"
},

Uneditable properties

The following properties are unable to be edited, but are required to be passed through in the propertyJson object.

PropertyDetails
mode

The microservice mode. A mode type of Undefined is used when the microservice is system related (Admin API, Portal Sharing, ingress controller, etc.). Only microservices related to an ArcGIS service type will return either Dedicated or Shared for this property.

Values: Shared | Dedicated | Undefined | Primary | Standby | Coordinator

provider

The microservice provider. Only microservices related to an ArcGIS service type will have a provider type. A provider type of Undefined is used for non-service related microservices (Admin API, Portal Sharing, ingress controller, etc.)

Values: SDS | ArcObjects11 | DMaps | Undefined | Postgres | Tiles | Ignite | MinIO | Elasticsearch | RabbitMQ

id

The template ID.

Example

"id": "9375dd81-30d1-41c0-a802-cabb425159a9",
type

The microservice type. For example, if the microservice is a shared feature server containing feature services, the type will be FeatureServer. For non-service related microservices, the type will be System.

Values: FeatureServer | GeometryServer | GPServer | GPSyncServer | MapServer | TileServer | System | InMemoryStore | ObjectStore | SpatiotemporalIndexStore | QueueServer | RelationalStore

spec

The JSON object representation of the template's specifications, including replicas and container resources.

Example

"spec": {
  "replicas": {
    "min": 1,
    "max": 1
  },
  "containers": [
    {
      "name": "main-container",
      "resources": {
        "memoryMin": "1.5Gi",
        "memoryMax": "4Gi",
        "cpuMin": "0.125",
        "cpuMax": "2"
      },
      "containerImageKey": "GP_SERVER"
    },
    {
      "name": "filebeat",
      "resources": {
        "memoryMin": "32Mi",
        "memoryMax": "50Mi",
        "cpuMin": "0.05",
        "cpuMax": "0.25"
      },
      "containerImageKey": "FILEBEAT"
    }
  ]
},
revision

The date, in milliseconds from epoch format, of the latest revision to the template.

Example

"revision": 1598217421474

Example usage

The following is a sample POST request for the edit operation, formatted for readability:

POST /context/admin/system/deployments/properties/9375dd81-30d1-41c0-a802-cabb425159a9/edit HTTP/1.1
Host: organization.domain.com
Content-Type: application/x-www-form-urlencoded
Content-Length: []

propertyJson={
  "mode": "Dedicated",
  "provider": "ArcObjects11",
  "id": "pflhvjnd6z3hy56dkfo55",
  "type": "GPSyncServer",
  "spec": {
    "replicas": {
      "min": 2,
      "max": 2
    },
    "containers": [
      {
        "name": "main-container",
        "resources": {
          "memoryMin": "1.5Gi",
          "memoryMax": "5Gi",
          "cpuMin": "0.125",
          "cpuMax": "2"
        },
        "containerImageKey": "GP_SERVER"
      },
      {
        "name": "filebeat",
        "resources": {
          "memoryMin": "32Mi",
          "memoryMax": "50Mi",
          "cpuMin": "0.05",
          "cpuMax": "0.25"
        },
        "containerImageKey": "FILEBEAT"
      }
    ]
  },
  "revision": 1618223886566
}
&f=pjson&token=ShyoW_1p9PjJNuVfR0D3a4qpLSAOJKVPoFWS6cEC6J3rXVkEWKEbD82VjAB0VQ_hWImd9pd-1h7AsHTt0m45N1_mzyzR-66Rqhu2Ydl7zc1Yk7JVRneVmQORFy2efBnc1ZndpXfuoKe41XRFGz3wl9LI8kG35lqAPGjM5F7v_hQMkhC1Ky37BDLizZCR4-xtq3h0Nb4VfYNtJRjwoKUUkgaaJSEUtilXj936p1yNBnPYQWb7dDjVuSVr502EzjvB

JSON Response example

{"status": "success"}