Αλλαγές πολιτικής
Αλλάξτε τις ρυθμίσεις μιας πολιτικής Android, δημιουργήστε μια πολιτική ως αντίγραφο μιας άλλης ή επαναφέρετε μια πολιτική σε προηγούμενη αναθεώρηση. Κάθε αλλαγή ελέγχεται πριν εφαρμοστεί.
Πώς λειτουργεί
Κάθε αλλαγή απαιτεί δύο βήματα. Πρώτα την προτείνετε: το API καταγράφει μια πρόταση και επιστρέφει τη λίστα αλλαγών της, με την τρέχουσα και τη νέα τιμή κάθε ρύθμισης, τον αντίκτυπο και τον χρόνο λήξης της πρότασης. Τίποτα δεν αλλάζει ακόμα στην πολιτική. Στη συνέχεια εφαρμόζετε την πρόταση βάσει του proposalId της, αφού ο υπεύθυνος ελέγξει τη λίστα αλλαγών.
Μόνο το κλειδί API που δημιούργησε μια πρόταση μπορεί να την αναγνώσει ή να την εφαρμόσει. Για μια σύνδεση OAuth, μόνο η ίδια σύνδεση και ο ίδιος χρήστης μπορούν. Μια πρόταση λήγει 10 λεπτά μετά τη δημιουργία της· το πεδίο expiresAt παρέχει την ακριβή ώρα.
Μόνο οι πολιτικές Android μπορούν να τροποποιηθούν με αυτόν τον τρόπο. Οι πολιτικές που διαχειρίζεται το Nomid δεν μπορούν. Η δημιουργία μιας πολιτικής απαιτεί επίσης τη σύνδεση της εταιρείας με το Android Enterprise.
Απαιτήσεις
- Ένα κλειδί API με το δικαίωμα POLICIES_WRITE (Αλλαγές πολιτικής), σε συνδυασμό με το POLICIES_READ. Μόνο ένας χρήστης της πύλης με δικαίωμα επεξεργασίας πολιτικών μπορεί να δημιουργήσει κλειδί με το POLICIES_WRITE. Απαιτείται από τα τέσσερα τελικά σημεία POST και τα εργαλεία αλλαγής πολιτικής MCP.
- Η ρύθμιση εταιρείας Αλλαγές πολιτικής, στην ενότητα Πρόσβαση πράκτορα AI στην πύλη, πρέπει να είναι ενεργοποιημένη. Είναι απενεργοποιημένη από προεπιλογή. Ενώ είναι απενεργοποιημένη, κάθε κλήση proposal και apply επιστρέφει 403. Η ανάγνωση ρυθμίσεων, αναθεωρήσεων και προτάσεων απαιτεί μόνο POLICIES_READ.
- Οι πελάτες MCP που συνδέονται με Σύνδεση μέσω Nomid αντί για κλειδί API χρειάζονται το εύρος mcp:policies:write.
Τελικά σημεία
Όλες οι διαδρομές είναι σχετικές με τη βασική διεύθυνση URL του API και απαιτούν την κεφαλίδα X-API-Key. Τα σώματα των αιτημάτων είναι JSON.
| Μέθοδος | Endpoint | Περιγραφή |
|---|---|---|
| GET | /policies/{policyId}/settings | Οι επεξεργάσιμες ρυθμίσεις της πολιτικής, καθεμία με την τρέχουσα τιμή της, τις επιτρεπόμενες τιμές, την ομάδα και εάν η αλλαγή της έχει υψηλό αντίκτυπο. Επίσης επιστρέφει την έκδοση πολιτικής, το deviceCount και αν η πολιτική είναι επεξεργάσιμη. |
| GET | /policies/{policyId}/revisions | Οι αποθηκευμένες αναθεωρήσεις της πολιτικής, με τις νεότερες πρώτα, μαζί με το πότε και από ποιον αποθηκεύτηκε η καθεμία. Το limit είναι προαιρετικό, από 1 έως 100, προεπιλογή 20. |
| GET | /policy-proposals/{proposalId} | Μια πρόταση που πραγματοποιήθηκε από αυτό το κλειδί, με τη λίστα αλλαγών της και την κατάσταση: PENDING, EXECUTING, SUCCEEDED, FAILED, UNCONFIRMED ή EXPIRED. |
| POST | /policies/{policyId}/changes | Πρόταση αλλαγών ρυθμίσεων σε υπάρχουσα πολιτική. Επιστρέφει 201 με την πρόταση. |
| POST | /policies | Πρόταση νέας πολιτικής ως αντίγραφο υπάρχουσας, με προαιρετικές αλλαγές ρυθμίσεων. Χωρίς αλλαγές δημιουργεί αντίγραφο της πολιτικής. Επιστρέφει 201 με την πρόταση. |
| POST | /policies/{policyId}/rollbacks | Πρόταση επαναφοράς της πολιτικής σε προηγούμενη αναθεώρηση. Επιστρέφει 201 με την πρόταση. |
| POST | /policy-proposals/{proposalId}/apply | Εφαρμογή εκκρεμούς πρότασης. Επιστρέφει 200 με την πρόταση και το αποτέλεσμά της: policyId, displayName, version και σύνδεσμο πύλης. |
Σώματα αιτημάτων
Αλλαγή ρυθμίσεων
| Πεδίο | Υποχρεωτικό | Περιγραφή |
|---|---|---|
| changes | Ναι | Πίνακας αντικειμένων με setting (ένα αναγνωριστικό ρύθμισης) και value (μία από τις επιτρεπόμενες τιμές της). Κάθε ρύθμιση το πολύ μία φορά. Οι τιμές δεν διακρίνουν πεζά-κεφαλαία. |
Δημιουργία πολιτικής
| Πεδίο | Υποχρεωτικό | Περιγραφή |
|---|---|---|
| fromPolicyId | Ναι | Η πολιτική προς αντιγραφή, βάσει του αναγνωριστικού πολιτικής της (pathName). Το αντίγραφο παίρνει τις εφαρμογές, τις ρυθμίσεις και τους περιορισμούς της. |
| displayName | Ναι | Όνομα της νέας πολιτικής όπως εμφανίζεται στην πύλη, το πολύ 50 χαρακτήρες. |
| changes | Όχι | Αλλαγές ρυθμίσεων προς εφαρμογή στο αντίγραφο, στην ίδια μορφή όπως παραπάνω. Παραλείψτε το για αντιγραφή της πολιτικής. Καμία συσκευή δεν χρησιμοποιεί τη νέα πολιτική μέχρι να μετακινήσετε συσκευές σε αυτήν. |
Επαναφορά πολιτικής
| Πεδίο | Υποχρεωτικό | Περιγραφή |
|---|---|---|
| revision | Ναι | Ο αριθμός αναθεώρησης προς επαναφορά, από το τελικό σημείο revisions. Η περιγραφή, οι ετικέτες και η ομάδα της πολιτικής παραμένουν ως έχουν. Το όνομά της επανέρχεται στο όνομα της αναθεώρησης όταν διαφέρουν και η λίστα αλλαγών το εμφανίζει. |
Εφαρμογή πρότασης
| Πεδίο | Υποχρεωτικό | Περιγραφή |
|---|---|---|
| confirmation | Για ΥΨΗΛΟ αντίκτυπο | Απαιτείται όταν η πρόταση έχει ορισμένο το requiresConfirmation σε true: το όνομα της πολιτικής, πληκτρολογημένο από το άτομο που εγκρίνει την αλλαγή. Η αντιστοίχιση αγνοεί πεζά-κεφαλαία και γύρω κενά. |
Η πρόταση
Κάθε τελικό σημείο propose και τα τελικά σημεία get και apply επιστρέφουν την πρόταση. Τα πιο χρήσιμα πεδία:
| Πεδίο | Περιγραφή |
|---|---|
| proposalId | Το αναγνωριστικό για την ανάγνωση ή την εφαρμογή της πρότασης. |
| status | PENDING μέχρι να εφαρμοστεί, και EXECUTING ενώ εκτελείται μια εφαρμογή: κανένα από τα δύο δεν είναι τελικό. Στη συνέχεια SUCCEEDED ή FAILED, UNCONFIRMED όταν ένα μη αναμενόμενο σφάλμα άφησε το αποτέλεσμα άγνωστο, ή EXPIRED μόλις παρέλθει το expiresAt. |
| impact | NORMAL ή HIGH. Δείτε το Αντίκτυπος και επιβεβαίωση. |
| requiresConfirmation | True για πρόταση με αντίκτυπο HIGH: η εφαρμογή χρειάζεται το πεδίο confirmation. |
| fields | Η λίστα αλλαγών. Κάθε καταχώριση έχει label (το όνομα της ρύθμισης), value (τη νέα τιμή) και previousValue (την τρέχουσα τιμή). |
| summary | Μία πρόταση που περιγράφει την αλλαγή, συμπεριλαμβανομένου του πόσες συσκευές χρησιμοποιούν την πολιτική. |
| target | Η πολιτική που αλλάζει η πρόταση: kind, id και name. |
| expiresAt | Πότε λήγει η πρόταση. Μετά από αυτό δεν μπορεί πλέον να εφαρμοστεί. |
| result | Αποκρίσεις εφαρμογής μόνο: η πολιτική όπως είναι τώρα, με policyId, displayName, version, ένα μήνυμα και portalUrl. |
Αντίκτυπος και επιβεβαίωση
Μια πρόταση έχει αντίκτυπο HIGH όταν η πολιτική έχει τουλάχιστον μία συσκευή και ισχύει οποιοδήποτε από τα παρακάτω:
- Είναι επαναφορά (rollback).
- Αλλάζει μια ρύθμιση υψηλού αντίκτυπου: εφαρμογές από άγνωστες πηγές, Google Play Protect, επαναφορά εργοστασιακών ρυθμίσεων, επιλογές για προγραμματιστές, μεταφορά δεδομένων μέσω USB ή κρυπτογράφηση χώρου αποθήκευσης.
- Η πολιτική έχει 50 ή περισσότερες συσκευές, ανεξάρτητα από την αλλαγή.
Όλα τα υπόλοιπα είναι NORMAL, συμπεριλαμβανομένης κάθε νέας πολιτικής, καθώς καμία συσκευή δεν τη χρησιμοποιεί ακόμα.
Οι προτάσεις είναι καρφιτσωμένες σε μια έκδοση πολιτικής
Μια πρόταση καταγράφει την έκδοση πολιτικής πάνω στην οποία δημιουργήθηκε η λίστα αλλαγών της. Εάν η πολιτική αποθηκευτεί ξανά πριν εφαρμόσετε την πρόταση, από οποιονδήποτε και από οπουδήποτε, η εφαρμογή αποτυγχάνει με 409 και κωδικό stale_proposal, και τίποτα δεν αλλάζει. Διαβάστε ξανά την πολιτική, προτείνετε ξανά και ελέγξτε τη νέα λίστα αλλαγών.
Παράδειγμα: πρόταση και εφαρμογή
Διαβάστε πρώτα τις τρέχουσες ρυθμίσεις της πολιτικής, για να λάβετε τα αναγνωριστικά ρυθμίσεων (setting IDs) και τις επιτρεπόμενες τιμές:
curl "https://api.nomid.tech/emm/api/v1/policies/p7k2m9qa4xz/settings" \
-H "X-API-Key: $NOMID_API_KEY" {
"policyId": "p7k2m9qa4xz",
"displayName": "Warehouse scanners",
"version": 12,
"deviceCount": 18,
"editable": true,
"settings": [
{
"id": "CAMERA",
"label": "Camera",
"group": "RESTRICTIONS",
"value": "ALLOW",
"allowedValues": ["ALLOW", "BLOCK"],
"highImpact": false
}
]
} Προτείνετε τον αποκλεισμό της κάμερας και της μεταφοράς δεδομένων μέσω USB:
curl -X POST "https://api.nomid.tech/emm/api/v1/policies/p7k2m9qa4xz/changes" \
-H "X-API-Key: $NOMID_API_KEY" \
-H "Content-Type: application/json" \
-d '{"changes": [{"setting": "CAMERA", "value": "BLOCK"}, {"setting": "USB_DATA_ACCESS", "value": "BLOCK"}]}' HTTP/1.1 201 Created
{
"capability": "update_policy_settings",
"status": "PENDING",
"title": "Edit policy settings",
"summary": "Change 2 settings of policy \"Warehouse scanners\". 18 devices apply it on their next sync. High impact: type the policy's name to confirm.",
"target": { "kind": "policy", "id": "p7k2m9qa4xz", "name": "Warehouse scanners" },
"fields": [
{ "label": "Camera", "value": "BLOCK", "previousValue": "ALLOW" },
{ "label": "USB data transfer", "value": "BLOCK", "previousValue": "ALLOW" }
],
"expiresAt": "2026-10-09T14:40:00Z",
"impact": "HIGH",
"proposalId": "prp_7GQv2LkR9sTn4WxY8bZcA1dE",
"requiresConfirmation": true
} Συνοπτική απόκριση. Η μεταφορά δεδομένων μέσω USB είναι μια ρύθμιση υψηλού αντίκτυπου και η πολιτική διαθέτει συσκευές, επομένως η πρόταση έχει αντίκτυπο HIGH και απαιτεί επιβεβαίωση. Δείξτε τη λίστα αλλαγών στον υπεύθυνο πριν την εφαρμόσετε.
Μόλις εγκρίνουν και πληκτρολογήσουν το όνομα της πολιτικής, εφαρμόστε την πρόταση με αυτό που πληκτρολόγησαν:
curl -X POST "https://api.nomid.tech/emm/api/v1/policy-proposals/prp_7GQv2LkR9sTn4WxY8bZcA1dE/apply" \
-H "X-API-Key: $NOMID_API_KEY" \
-H "Content-Type: application/json" \
-d '{"confirmation": "Warehouse scanners"}' HTTP/1.1 200 OK
{
"capability": "update_policy_settings",
"status": "SUCCEEDED",
"impact": "HIGH",
"proposalId": "prp_7GQv2LkR9sTn4WxY8bZcA1dE",
"requiresConfirmation": true,
"result": {
"policyId": "p7k2m9qa4xz",
"displayName": "Warehouse scanners",
"version": 13,
"message": "Policy settings changed. Devices on the policy apply them on their next sync."
}
} Συνοπτική απόκριση. Οι συσκευές στην πολιτική εφαρμόζουν τις νέες ρυθμίσεις στον επόμενο συγχρονισμό τους.
Όταν η πολιτική άλλαξε στο μεταξύ
HTTP/1.1 409 Conflict
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Conflict",
"status": 409,
"detail": "Policy \"Warehouse scanners\" was changed after this proposal was made. Nothing was applied: read it again and propose again.",
"instance": "/emm/api/v1/policy-proposals/prp_7GQv2LkR9sTn4WxY8bZcA1dE/apply",
"code": "stale_proposal",
"retryable": false
} Επεξεργάσιμες ρυθμίσεις
Αυτά είναι τα αναγνωριστικά ρυθμίσεων (setting IDs) που γίνονται δεκτά σε αλλαγές, μαζί με τις επιτρεπόμενες τιμές τους. Η ετικέτα είναι το όνομα που επιστρέφει το API στη λίστα αλλαγών.
Κατά την ανάγνωση ρυθμίσεων, μια τιμή μπορεί επίσης να είναι NOT_SET (αφήνεται στη συσκευή ή στην προεπιλογή της Google) ή CUSTOM (μια τιμή που έχει οριστεί στην πύλη και την οποία αυτές οι τιμές δεν μπορούν να εκφράσουν). Καμία από τις δύο δεν μπορεί να σταλεί, αλλά και οι δύο μπορούν να αντικατασταθούν με μια επιτρεπόμενη τιμή.
| Ρύθμιση | Ετικέτα | Ομάδα | Επιτρεπόμενες τιμές | Υψηλός αντίκτυπος |
|---|---|---|---|---|
| PLAY_STORE_MODE | Play Store mode | APPS | BLACKLIST, WHITELIST | Όχι |
| DEFAULT_PERMISSION_POLICY | Default runtime permission policy | APPS | DENY, PROMPT | Όχι |
| APP_AUTO_UPDATE_POLICY | App auto-update policy | APPS | ALWAYS, CHOICE_TO_THE_USER, NEVER, WIFI | Όχι |
| UNTRUSTED_APPS_POLICY | Apps from unknown sources | SECURITY | ALLOW_INSTALL_IN_PERSONAL_PROFILE_ONLY, DISALLOW_INSTALL | Ναι |
| PLAY_PROTECT | Google Play Protect app verification | SECURITY | ENABLED, USER_CHOICE | Ναι |
| SCREEN_CAPTURE | Screen capture | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| CAMERA | Camera | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| FACTORY_RESET | Factory reset from Settings | RESTRICTIONS | ALLOW, BLOCK | Ναι |
| UNINSTALL_APPS | Uninstalling apps | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| ACCOUNT_MODIFICATION | Adding or removing accounts | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| ADD_USER | Adding users | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| REMOVE_USER | Removing users | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| DEVELOPER_SETTINGS | Developer options and USB debugging | SECURITY | ALLOW, BLOCK | Ναι |
| USB_DATA_ACCESS | USB data transfer | CONNECTIVITY | ALLOW, BLOCK | Ναι |
| LOCATION_MODE | Location | LOCATION | DISABLED, ENFORCED, USER_CHOICE | Όχι |
| LOCATION_SHARING | Sharing location | LOCATION | ALLOW, BLOCK | Όχι |
| OUTGOING_CALLS | Outgoing calls | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| SMS | SMS | RESTRICTIONS | ALLOW, BLOCK | Όχι |
| BLUETOOTH | Bluetooth | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| DATA_ROAMING | Data roaming | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| NETWORK_RESET | Network settings reset | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| VPN_CONFIGURATION | Configuring VPNs | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| CONFIGURE_WIFI | Configuring Wi-Fi networks | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| WIFI_DIRECT | Wi-Fi Direct | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| TETHERING | Tethering and hotspot | CONNECTIVITY | ALLOW, BLOCK | Όχι |
| WIFI_STATE | Wi-Fi on or off | CONNECTIVITY | DISABLED, ENABLED, USER_CHOICE | Όχι |
| AIRPLANE_MODE | Airplane mode | CONNECTIVITY | DISABLED, USER_CHOICE | Όχι |
| MINIMUM_WIFI_SECURITY | Minimum Wi-Fi security | CONNECTIVITY | OPEN_NETWORK, PERSONAL_NETWORK | Όχι |
| AUTO_DATE_TIME | Automatic date, time and time zone | RESTRICTIONS | ENFORCED, USER_CHOICE | Όχι |
| ENCRYPTION_POLICY | Storage encryption | SECURITY | ENABLED_WITHOUT_PASSWORD, ENABLED_WITH_PASSWORD, UNSPECIFIED | Ναι |
| APPLICATION_REPORT_LEVEL | Installed apps reporting | REPORTING | DISABLED, INSTALLED_AND_REMOVED_APPS, INSTALLED_APPS | Όχι |
| REPORT_DEVICE_SETTINGS | Device settings reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_DISPLAY_INFO | Display information reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_HARDWARE_STATUS | Hardware status reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_MEMORY_INFO | Memory information reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_NETWORK_INFO | Network information reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_POWER_EVENTS | Power events reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_SOFTWARE_INFO | Software information reporting | REPORTING | DISABLED, ENABLED | Όχι |
| REPORT_SYSTEM_PROPERTIES | System properties reporting | REPORTING | DISABLED, ENABLED | Όχι |
Εργαλεία MCP
Ο διακομιστής MCP εκθέτει τις ίδιες λειτουργίες ως εργαλεία. Δέχονται τα ίδια ορίσματα με τα τελικά σημεία REST, με τα policyId και proposalId ως ορίσματα αντί για τμήματα διαδρομής (path segments).
| Εργαλείο | Άδεια | Περιγραφή |
|---|---|---|
| get_policy_settings | POLICIES_READ | Ανάγνωση των επεξεργάσιμων ρυθμίσεων μιας πολιτικής με τις τρέχουσες και τις επιτρεπόμενες τιμές τους. |
| list_policy_revisions | POLICIES_READ | Καταγραφή των αποθηκευμένων αναθεωρήσεων μιας πολιτικής, με τις νεότερες πρώτα. |
| get_policy_proposal | POLICIES_READ | Ανάγνωση μιας πρότασης που υποβλήθηκε από το ίδιο κλειδί ή σύνδεση, μαζί με την κατάστασή της. |
| update_policy_settings | POLICIES_WRITE + POLICIES_READ | Πρόταση αλλαγών ρυθμίσεων σε μια υπάρχουσα πολιτική. |
| create_policy | POLICIES_WRITE + POLICIES_READ | Πρόταση νέας πολιτικής ως αντίγραφο μιας υπάρχουσας, με προαιρετικές αλλαγές ρυθμίσεων. |
| rollback_policy | POLICIES_WRITE + POLICIES_READ | Πρόταση επαναφοράς μιας πολιτικής σε προηγούμενη αναθεώρηση. |
| apply_policy_proposal | POLICIES_WRITE + POLICIES_READ | Εφαρμογή μιας εκκρεμούς πρότασης βάσει του proposalId της, με επιβεβαίωση όταν έχει ΥΨΗΛΟ αντίκτυπο (HIGH). |
Ένας βοηθός πρέπει να δείξει στον χρήστη τη λίστα αλλαγών και να λάβει τη ρητή έγκρισή του στη συνομιλία πριν καλέσει το apply_policy_proposal. Για μια πρόταση ΥΨΗΛΟΥ αντικτύπου (HIGH), πρέπει να ζητήσει από τον χρήστη να πληκτρολογήσει το όνομα της πολιτικής και να διαβιβάσει ακριβώς αυτό που πληκτρολόγησε.
Σφάλματα
Μόλις επικυρωθεί το κλειδί API, τα σφάλματα χρησιμοποιούν το application/problem+json με δύο επιπλέον πεδία: το code, ένα σταθερό αναγνωριστικό για διακλάδωση, και το retryable, το οποίο δηλώνει εάν το ίδιο αίτημα μπορεί να σταλεί ξανά. Ένα κλειδί που λείπει ή δεν είναι έγκυρο λαμβάνει την κοινόχρηστη απόκριση 401, ένα μικρό αντικείμενο JSON με error, message και status. Τα εργαλεία MCP επιστρέφουν τον ίδιο κωδικό και μήνυμα ως σφάλμα εργαλείου.
| Κατάσταση | Κωδικός | Σημασία |
|---|---|---|
| 400 | invalid_arguments | Το σώμα δεν είναι έγκυρο: άγνωστη ρύθμιση, τιμή που δεν επιτρέπεται, ρύθμιση που αναφέρεται δύο φορές ή πεδίο που λείπει. Το detail αναφέρει ποιο από αυτά ισχύει. |
| 403 | forbidden | Το κλειδί δεν διαθέτει POLICIES_WRITE ή POLICIES_READ, ή η ρύθμιση της εταιρείας Policy changes είναι απενεργοποιημένη. |
| 404 | not_found | Δεν υπάρχει τέτοια πολιτική ή αναθεώρηση ορατή σε αυτό το κλειδί, ή δεν υπάρχει πρόταση με αυτό το ID που να υποβλήθηκε από αυτό το κλειδί. |
| 409 | unsupported | Η πολιτική δεν μπορεί να αλλάξει με αυτόν τον τρόπο: δεν είναι πολιτική Android ή διαχειρίζεται από το Nomid. |
| 409 | not_pending | Η πρόταση δεν είναι πλέον PENDING. Διαβάστε την για να δείτε την κατάστασή της: εάν είναι SUCCEEDED, η αλλαγή πραγματοποιήθηκε. Εάν είναι EXECUTING, διαβάστε την ξανά μέχρι να ολοκληρωθεί. Εάν είναι UNCONFIRMED, διαβάστε τις ρυθμίσεις της πολιτικής πριν προτείνετε ξανά. Εάν είναι FAILED ή EXPIRED, προτείνετε ξανά. |
| 409 | stale_proposal | Η πολιτική αποθηκεύτηκε μετά την υποβολή της πρότασης. Δεν εφαρμόστηκε τίποτα. Διαβάστε ξανά την πολιτική και προτείνετε ξανά. |
| 422 | refused | Το αίτημα δεν μπορεί να εκτελεστεί: τίποτα δεν θα άλλαζε, η εταιρεία δεν είναι συνδεδεμένη στο Android Enterprise, ή το νέο όνομα πολιτικής δεν μπορεί να χρησιμοποιηθεί. |
| 422 | confirmation_required | Η πρόταση έχει αντίκτυπο HIGH και η επιβεβαίωση λείπει ή δεν ταιριάζει με το όνομα της πολιτικής. Δεν εφαρμόστηκε τίποτα και η πρόταση παραμένει σε εκκρεμότητα μέχρι να λήξει. |
| 429 | rate_limited | Πάρα πολλά αιτήματα εγγραφής για αυτό το κλειδί API ή τη σύνδεση. Η κεφαλίδα Retry-After και οι λεπτομέρειες παρέχουν τα δευτερόλεπτα αναμονής. Το retryable είναι true. |
| 500 | internal_error | Μη αναμενόμενο σφάλμα. Διαβάστε την πρόταση πριν προσπαθήσετε ξανά: εάν η κατάστασή της είναι FAILED, προτείνετε ξανά. Εάν είναι UNCONFIRMED, διαβάστε τις ρυθμίσεις της πολιτικής για να δείτε εάν έγινε η αλλαγή πριν την προτείνετε ξανά. |
Όρια ρυθμού αιτημάτων
Κάθε κλήση propose και apply προσμετράται στο όριο εγγραφής των 10 αιτημάτων ανά λεπτό για κάθε κλειδί API ή σύνδεση Sign in with Nomid, κοινόχρηστο με τα τελικά σημεία εντολών συσκευής, τους κωδικούς QR προετοιμασίας και τα εργαλεία εγγραφής MCP. Οι κλήσεις ανάγνωσης δεν προσμετρώνται σε αυτό.
Αναθεωρήσεις και επαναφορά
Κάθε εφαρμοσμένη αλλαγή αποθηκεύει μια νέα αναθεώρηση της πολιτικής. Καταγράψτε τις αναθεωρήσεις για να δείτε ποιος άλλαξε την πολιτική και πότε, και προτείνετε μια επαναφορά για να αναιρέσετε μια αλλαγή.