Update Container

Update Container

PATCH https://api.ocamba.com/v1/hood/containers/{id}
Updates the specific Container by setting the values of the parameters passed. Any parameters not provided will be left unchanged

Note
At least one of the updatable fields should be sent via HTTP body in order to change the current state of the container. Web app names are sanitized to be all lowercase. Android and iOS app names stay the same.
Tip
If you don’t know the Container ‘id’, list the Containers to find it. Patching the container with applications will replace the old applications array.

Rate limits:

  • Burst: 10/s
  • Steady: 150/m

Path parameters

parameters

Request schema

body

Response schemas

204
No Content
curl -X PATCH \
 "https://api.ocamba.com/v1/hood/containers/{id}" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Example Containter Update",
  "enable_modals": true,
  "enable_tags": true,
  "description": "This is a new description for a Container",
  "applications": [
    {
      "app": "app.example.com"
    }
  ],
  "push": {
    "enabled": true,
    "override": true,
    "domain": "t.example.com",
    "auto_resubscribe": true,
    "suppress_prompts_on_subdomains": true,
    "service_worker": {
      "path": "/sw1.js",
      "source": "updated"
    }
  },
  "analytics": {
    "enabled": true,
    "override": true
  },
  "crashlytics": {
    "enabled": true,
    "override": true
  },
  "consent": {
    "enabled": true,
    "override": true
  }
}'
const url = 'https://api.ocamba.com/v1/hood/containers/{id}';
const options = {
  method: 'PATCH',
  headers: {
    Authorization: "Bearer {TOKEN}",
    'Content-Type': "application/json"
  },
  body: JSON.stringify(
    {
      "name": "Example Containter Update",
      "enable_modals": true,
      "enable_tags": true,
      "description": "This is a new description for a Container",
      "applications": [
        {
          "app": "app.example.com"
        }
      ],
      "push": {
        "enabled": true,
        "override": true,
        "domain": "t.example.com",
        "auto_resubscribe": true,
        "suppress_prompts_on_subdomains": true,
        "service_worker": {
          "path": "/sw1.js",
          "source": "updated"
        }
      },
      "analytics": {
        "enabled": true,
        "override": true
      },
      "crashlytics": {
        "enabled": true,
        "override": true
      },
      "consent": {
        "enabled": true,
        "override": true
      }
    }
  )
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
$ch = curl_init("https://api.ocamba.com/v1/hood/containers/{id}");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer {TOKEN}",
  "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(
  [
    "name" => "Example Containter Update",
    "enable_modals" => true,
    "enable_tags" => true,
    "description" => "This is a new description for a Container",
    "applications" => [
      [
        "app" => "app.example.com"
      ]
    ],
    "push" => [
      "enabled" => true,
      "override" => true,
      "domain" => "t.example.com",
      "auto_resubscribe" => true,
      "suppress_prompts_on_subdomains" => true,
      "service_worker" => [
        "path" => "/sw1.js",
        "source" => "updated"
      ]
    ],
    "analytics" => [
      "enabled" => true,
      "override" => true
    ],
    "crashlytics" => [
      "enabled" => true,
      "override" => true
    ],
    "consent" => [
      "enabled" => true,
      "override" => true
    ]
  ]
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl -X PATCH \
 "https://api.ocamba.com/v1/hood/containers/{id}" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Example Containter Update",
  "enable_modals": true,
  "enable_tags": true,
  "description": "This is a new description for a Container",
  "applications": [
    {
      "app": "app.example.com"
    }
  ],
  "push": {
    "enabled": true,
    "override": true,
    "domain": "t.example.com",
    "auto_resubscribe": true,
    "suppress_prompts_on_subdomains": true,
    "apns_env": "sandbox",
    "apns_p12": "{base64_encoded_p12_file}",
    "apns_p12_password": "p12_pass_example"
  },
  "analytics": {
    "enabled": true,
    "override": true
  },
  "crashlytics": {
    "enabled": true,
    "override": true
  },
  "consent": {
    "enabled": true,
    "override": true
  }
}'
const url = 'https://api.ocamba.com/v1/hood/containers/{id}';
const options = {
  method: 'PATCH',
  headers: {
    Authorization: "Bearer {TOKEN}",
    'Content-Type': "application/json"
  },
  body: JSON.stringify(
    {
      "name": "Example Containter Update",
      "enable_modals": true,
      "enable_tags": true,
      "description": "This is a new description for a Container",
      "applications": [
        {
          "app": "app.example.com"
        }
      ],
      "push": {
        "enabled": true,
        "override": true,
        "domain": "t.example.com",
        "auto_resubscribe": true,
        "suppress_prompts_on_subdomains": true,
        "apns_env": "sandbox",
        "apns_p12": "{base64_encoded_p12_file}",
        "apns_p12_password": "p12_pass_example"
      },
      "analytics": {
        "enabled": true,
        "override": true
      },
      "crashlytics": {
        "enabled": true,
        "override": true
      },
      "consent": {
        "enabled": true,
        "override": true
      }
    }
  )
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
$ch = curl_init("https://api.ocamba.com/v1/hood/containers/{id}");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer {TOKEN}",
  "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(
  [
    "name" => "Example Containter Update",
    "enable_modals" => true,
    "enable_tags" => true,
    "description" => "This is a new description for a Container",
    "applications" => [
      [
        "app" => "app.example.com"
      ]
    ],
    "push" => [
      "enabled" => true,
      "override" => true,
      "domain" => "t.example.com",
      "auto_resubscribe" => true,
      "suppress_prompts_on_subdomains" => true,
      "apns_env" => "sandbox",
      "apns_p12" => "[base64_encoded_p12_file]",
      "apns_p12_password" => "p12_pass_example"
    ],
    "analytics" => [
      "enabled" => true,
      "override" => true
    ],
    "crashlytics" => [
      "enabled" => true,
      "override" => true
    ],
    "consent" => [
      "enabled" => true,
      "override" => true
    ]
  ]
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl -X PATCH \
 "https://api.ocamba.com/v1/hood/containers/{id}" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Example Containter Update",
  "enable_modals": true,
  "enable_tags": true,
  "description": "This is a new description for a Container",
  "applications": [
    {
      "app": "app.example.com"
    }
  ],
  "push": {
    "enabled": true,
    "override": true,
    "domain": "t.example.com",
    "auto_resubscribe": true,
    "suppress_prompts_on_subdomains": true,
    "firebase_admin_sdk_json": "{base64_encoded_firebase_json_file}"
  },
  "analytics": {
    "enabled": true,
    "override": true
  },
  "crashlytics": {
    "enabled": true,
    "override": true
  },
  "consent": {
    "enabled": true,
    "override": true
  }
}'
const url = 'https://api.ocamba.com/v1/hood/containers/{id}';
const options = {
  method: 'PATCH',
  headers: {
    Authorization: "Bearer {TOKEN}",
    'Content-Type': "application/json"
  },
  body: JSON.stringify(
    {
      "name": "Example Containter Update",
      "enable_modals": true,
      "enable_tags": true,
      "description": "This is a new description for a Container",
      "applications": [
        {
          "app": "app.example.com"
        }
      ],
      "push": {
        "enabled": true,
        "override": true,
        "domain": "t.example.com",
        "auto_resubscribe": true,
        "suppress_prompts_on_subdomains": true,
        "firebase_admin_sdk_json": "{base64_encoded_firebase_json_file}"
      },
      "analytics": {
        "enabled": true,
        "override": true
      },
      "crashlytics": {
        "enabled": true,
        "override": true
      },
      "consent": {
        "enabled": true,
        "override": true
      }
    }
  )
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
$ch = curl_init("https://api.ocamba.com/v1/hood/containers/{id}");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer {TOKEN}",
  "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(
  [
    "name" => "Example Containter Update",
    "enable_modals" => true,
    "enable_tags" => true,
    "description" => "This is a new description for a Container",
    "applications" => [
      [
        "app" => "app.example.com"
      ]
    ],
    "push" => [
      "enabled" => true,
      "override" => true,
      "domain" => "t.example.com",
      "auto_resubscribe" => true,
      "suppress_prompts_on_subdomains" => true,
      "firebase_admin_sdk_json" => "[base64_encoded_firebase_json_file]"
    ],
    "analytics" => [
      "enabled" => true,
      "override" => true
    ],
    "crashlytics" => [
      "enabled" => true,
      "override" => true
    ],
    "consent" => [
      "enabled" => true,
      "override" => true
    ]
  ]
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

Responses

204 No Content

400 Bad Request

{
  "code": 400,
  "title": "Bad request.",
  "message": "The request is not valid.",
  "trace_id": "99a84211-f73d-4ff8-acdf-eb3e06bb9d62"
}

500 Internal Server Error

{
  "code": 500,
  "title": "Internal server error.",
  "trace_id": "99a84211-f73d-4ff8-acdf-eb3e06bb9d62"
}
Responses