Skip to content

API Reference

Authentication

Get AWS Cognito Configuration

  • Endpoint

    GET api/v1/security/cognito

  • Example

    curl -X GET https://<ip>:<port>/api/v1/security/cognito
    
  • Responses

    • 200 OK
      {
          "enabled": true,
          "region": "<region>",
          "userPoolID": "<user-pool-id>",
          "clientID": "<client-id>",
          "identityPoolID": "<identity-pool-id>",
          "adminGroups": "<admin groups list>"
      }
      

Enable AWS Cognito

  • Endpoint

    PUT api/v1/security/cognito

  • Request body

    {
        "region": "<region>", 
        "userPoolID": "<user-pool-id>",
        "clientID": "<client-id>",
        "identityPoolID": "<identity-pool-id>",
        "adminGroups":"<admin-groups>", 
        "accessKey": "<access-key>", 
        "secretKey": "<secret-key>", 
        "token":"<access-token>"
    }
    
  • Example

    curl -X PUT https://<ip>:<port>/api/v1/security/cognito \ 
            -H "Content-Type: application/json" \ 
            -d '{"region": "<region>", "userPoolID": "<user-pool-id>", "clientID": "<client-id>", "identityPoolID": "<identity-pool-id>", "adminGroups":"<admin-groups>", "accessKey": "<access-key>", "secretKey": "<secret-key>", "token":"<access-token>"}'
    
  • Responses

    • 200 OK

      {
          "region": "<region>", 
          "userPoolID": "<user-pool-id>",
          "clientID": "<client-id>",
          "identityPoolID": "<identity-pool-id>",
          "adminGroups":"<admin-groups>", 
          "accessKey": "<access-key>", 
          "secretKey": "<secret-key>", 
          "token":"<access-token>"
      }
      
    • 422 Invalid input

      {
          "statusCode": 422,
          "errorCode": 1003,
          "message": "Invalid argument"
      }
      

Disable AWS Cognito

  • Endpoint

    • Delete api/v1/security/cognito
  • Example

    curl -X DELETE https://<ip>:<port>/api/v1/security/cognito \ -H "Content-Type: application/json" \ -H "Authorization: bearer <access-token>"
    

  • Responses

    • 200 OK

      {
          "addr": "https://0.0.0.0:8081",
          "id": "<id>",
          "staticFolder": "mmabWeb",
          "log": {
              "file": "/var/log/memverge/mmab.log",
              "level": "debug",
              "maxSizeMB": 10,
              "maxBackups": 10
          },
          "security": {
              "certFile": "server.crt",
              "keyFile": "server.pem",
              "cognito": {
              "enabled": false,
              "userPoolID": "us-west-1_xxx",
              "identityPoolID": "",
              "clientID": "<client-id>",
              "adminGroups": [
                  "admin"
              ]
              }
          },
          "ckpt": {
              "ckptMode": "iterative",
              "ckptInterval": "15m",
              "diagnosisMode": false
          },
          "node": {
              "heartbeat": "30s",
              "ttl": "5m0s"
          },
          "job": {
              "diskType": "gp3",
              "diskSizeGB": 120
          }
      }
      

    • 403 Not privileged

      {
          "statusCode": 403,
          "errorCode": 2005,
          "message": "User is not privileged, only admin can disable cognito",
          "fields": {
              "adminGroups": [
              "admin"
              ],
              "groupsInToken": null
          }
      }
      

Checkpoint Configuration

For checkpoint configurations details (keys, values, definitions), see here.

Get Checkpoint Configuration

  • Endpoint

    • GET api/v1/config
  • Example

    curl -X GET https://<ip>:<port>/api/v1/config
    

  • Responses

    • 200 OK
      {
          "addr": "https://0.0.0.0:8081",
          "id": "<id>",
          "staticFolder": "mmabWeb",
          "log": {
              "file": "/var/log/memverge/mmab.log",
              "level": "debug",
              "maxSizeMB": 10,
              "maxBackups": 10
          },
          "security": {
              "certFile": "server.crt",
              "keyFile": "server.pem",
              "cognito": {
              "enabled": false,
              "userPoolID": "us-west-1_xxx",
              "identityPoolID": "",
              "clientID": "<client-id>",
              "adminGroups": [
                  "admin"
              ]
              }
          },
          "ckpt": {
              "ckptMode": "iterative",
              "ckptInterval": "15m",
              "diagnosisMode": false
          },
          "node": {
              "heartbeat": "30s",
              "ttl": "5m0s"
          },
          "job": {
              "diskType": "gp3",
              "diskSizeGB": 120
          }
      }
      

Set Checkpoint Configuration

  • Endpoint

    • PUT api/v1/ckptConfig
  • Request body

    {
        "ckptMode": "iterative",
        "ckptInterval": "15m",
        "diagnosisMode": false
    }
    

  • Example

    curl -X PUT https://<ip>:8081/api/v1/ckptConfig \ 
         -H "Content-Type: application/json" \ 
         -d '{"ckptMode":"iterative","ckptInterval":"15m","diagnosisMode":false}'
    

  • Responses

    • 200 OK
      {
          "ckptMode": "iterative",
          "ckptInterval": "15m",
          "diagnosisMode": false
      }
      

Metrics Reporting

Get Metrics Reporting

  • Endpoint

    • GET api/v1/metrics/summary
  • Request body

    {
        "start": 2025-01-01T00:00:00Z,  //optional; type = time.time
        "end": 2025-01-07T23:59:59Z     //optional; type = time.time
    }
    

  • Example
    GET /api/v1/metrics/summary?start=2025-01-01T00:00:00Z&end=2025-01-07T23:59:59Z
    
  • Responses

    • 200 OK
      {
          "items": {
              "metricDef-coreTime": [
                  {
                      "id": "metricDef-coreTime.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152151934Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ],
              "metricDef-coreTimeSaved": [
                  {
                      "id": "metricDef-coreTimeSaved.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152158233Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ],
              "metricDef-jobCost": [
                  {
                      "id": "metricDef-jobCost.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152175923Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ],
              "metricDef-jobSubmitted": [
                  {
                      "id": "metricDef-jobSubmitted.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152143568Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ],
              "metricDef-onDemandSavings": [
                  {
                      "id": "metricDef-onDemandSavings.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152181611Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ],
              "metricDef-spotProtection": [
                  {
                      "id": "metricDef-spotProtection.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152166314Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ],
              "metricDef-spotSavings": [
                  {
                      "id": "metricDef-spotSavings.queue-cjq-us-e1-p0",
                      "point": {
                          "time": "2025-02-28T01:57:26.152170973Z",
                          "value": 0
                      },
                      "metaData": {
                          "queueName": "cjq-us-e1-p0"
                      }
                  }
              ]
          }
      }