Disable Operations
The disableOperations
method allows you to selectively disable specific GraphQL operations for a model in your Amplify application. This can be useful for implementing specialized API designs and reduce the number of resources being deployed.
You can disable operations by adding the disableOperations
method to your model definition:
amplify/data/resource.ts
export const schema = a.schema({ Customer: a .model({ name: a.string(), phoneNumber: a.phone(), accountRepresentativeId: a.id().required(), }) .disableOperations(["mutations", "subscriptions", "queries"]) .authorization(allow => [allow.publicApiKey()]),});
Available Operation Types
The disableOperations
method accepts an array of operation types that you want to disable:
General Operation Categories
mutations
: Disables all mutation operations (create, update, delete)subscriptions
: Disables all real-time subscription operations (onCreate, onUpdate, onDelete)queries
: Disables all query operations (get, list)
Specific Operations
You can also disable more granular operations: Query Operations
get
: Disables the ability to fetch a single item by IDlist
: Disables the ability to fetch multiple items
Mutation Operations
create
: Disables the ability to create new itemsupdate
: Disables the ability to update existing itemsdelete
: Disables the ability to delete items
Subscription Operations
onCreate
: Disables real-time notifications when items are createdonUpdate
: Disables real-time notifications when items are updatedonDelete
: Disables real-time notifications when items are deleted
You can specify one or more operation types in the array to disable them:
// Disable all mutationsdisableOperations: ["mutations"]
// Disable both subscriptions and queriesdisableOperations: ["subscriptions", "queries"]
// Disable specific operationsdisableOperations: ["create", "update", "list"]
// Disable specific subscription typesdisableOperations: ["onCreate", "onUpdate"]
// Mix general categories with specific operationsdisableOperations: ["queries", "create", "onDelete"]