--- id: update-subscription sidebar_label: Update a Subscription hide_title: true hide_table_of_contents: true api: {"operationId":"updateSubscription","tags":["Triggers"],"description":"This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing\n Subscription is completely replaced. The following fields are immutable:\n\n\n * id\n\n * triggerId\n\n\n Attempts to modify these fields result in 400.","parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Subscription ID","example":"0f11f2a4-7c94-4bf3-a2bd-742580fe3bde"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Subscription name.","example":"Access request subscription"},"description":{"type":"string","description":"Subscription description.","example":"Access requested to site xyz"},"type":{"type":"string","description":"Subscription type. **NOTE** If type is EVENTBRIDGE, then eventBridgeConfig is required. If type is HTTP, then httpConfig is required.","enum":["HTTP","EVENTBRIDGE"],"example":"HTTP"},"responseDeadline":{"type":"string","description":"Deadline for completing REQUEST_RESPONSE trigger invocation, represented in ISO-8601 duration format.","example":"PT1H","default":"PT1H"},"httpConfig":{"description":"Config required if HTTP subscription type is used.","type":"object","properties":{"url":{"type":"string","description":"URL of the external/custom integration.","example":"https://www.example.com"},"httpDispatchMode":{"type":"string","description":"HTTP response modes, i.e. SYNC, ASYNC, or DYNAMIC.","enum":["SYNC","ASYNC","DYNAMIC"],"example":"SYNC"},"httpAuthenticationType":{"type":"string","description":"Defines the HTTP Authentication type. Additional values may be added in the future.\n\nIf *NO_AUTH* is selected, no extra information will be in HttpConfig.\n\nIf *BASIC_AUTH* is selected, HttpConfig will include BasicAuthConfig with Username and Password as strings.\n\nIf *BEARER_TOKEN* is selected, HttpConfig will include BearerTokenAuthConfig with Token as string.","enum":["NO_AUTH","BASIC_AUTH","BEARER_TOKEN"],"default":"NO_AUTH","example":"BASIC_AUTH"},"basicAuthConfig":{"type":"object","properties":{"userName":{"type":"string","description":"The username to authenticate.","example":"user@example.com"},"password":{"type":"string","nullable":true,"description":"The password to authenticate. On response, this field is set to null as to not return secrets.","example":null}},"description":"Config required if BASIC_AUTH is used."},"bearerTokenAuthConfig":{"type":"object","properties":{"bearerToken":{"type":"string","nullable":true,"description":"Bearer token","example":null}},"description":"Config required if BEARER_TOKEN authentication is used. On response, this field is set to null as to not return secrets."}},"required":["url","httpDispatchMode"]},"eventBridgeConfig":{"description":"Config required if EVENTBRIDGE subscription type is used.","type":"object","properties":{"awsAccount":{"type":"string","description":"AWS Account Number (12-digit number) that has the EventBridge Partner Event Source Resource.","example":"123456789012"},"awsRegion":{"type":"string","description":"AWS Region that has the EventBridge Partner Event Source Resource. See https://docs.aws.amazon.com/general/latest/gr/rande.html for a full list of available values.","example":"us-west-1"}},"required":["awsAccount","awsRegion"]},"enabled":{"type":"boolean","description":"Whether subscription should receive real-time trigger invocations or not.\n\nTest trigger invocations are always enabled regardless of this option.","default":true,"example":true},"filter":{"type":"string","description":"JSONPath filter to conditionally invoke trigger when expression evaluates to true.","example":"$[?($.identityId == \"201327fda1c44704ac01181e963d463c\")]","externalDocs":{"description":"JSONPath filter documentation","url":"https://developer.sailpoint.com/triggers/filtering_event_triggers.html#filtering-event-triggers"}}}},"examples":{"HTTP Subscription":{"value":{"name":"Access request subscription","description":"Access requested to site xyz","type":"HTTP","httpConfig":{"url":"https://www.example.com","httpDispatchMode":"SYNC","httpAuthenticationType":"BASIC_AUTH","basicAuthConfig":{"userName":"user@example.com","password":"eRtg4%6yuI!"}},"enabled":true,"filter":"$[?($.identityId == \"201327fda1c44704ac01181e963d463c\")]"}},"HTTP Async Subscription":{"value":{"name":"Access request subscription","description":"Access requested to site xyz","type":"HTTP","responseDeadline":"PT1H","httpConfig":{"url":"https://www.example.com","httpDispatchMode":"ASYNC","httpAuthenticationType":"BASIC_AUTH","basicAuthConfig":{"userName":"user@example.com","password":"eRtg4%6yuI!"}},"enabled":true,"filter":"$[?($.identityId == \"201327fda1c44704ac01181e963d463c\")]"}},"EventBridge Subscription":{"value":{"name":"Access request subscription","description":"Access requested to site xyz","type":"EVENTBRIDGE","eventBridgeConfig":{"awsAccount":"123456789012","awsRegion":"us-west-1"},"enabled":true,"filter":"$[?($.identityId == \"201327fda1c44704ac01181e963d463c\")]"}}}}}},"responses":{"200":{"description":"Updated subscription.","content":{"application/json":{"schema":{"type":"object","required":["id","triggerId","type","name","triggerName","enabled","responseDeadline"],"properties":{"id":{"type":"string","description":"Subscription ID.","example":"0f11f2a4-7c94-4bf3-a2bd-742580fe3bde"},"name":{"type":"string","description":"Subscription name.","example":"Access request subscription"},"description":{"type":"string","description":"Subscription description.","example":"Access requested to site xyz"},"triggerId":{"type":"string","description":"ID of trigger subscribed to.","example":"idn:access-requested"},"triggerName":{"type":"string","description":"Trigger name of trigger subscribed to.","example":"Access Requested"},"type":{"type":"string","description":"Subscription type. **NOTE** If type is EVENTBRIDGE, then eventBridgeConfig is required. If type is HTTP, then httpConfig is required.","enum":["HTTP","EVENTBRIDGE"],"example":"HTTP"},"responseDeadline":{"type":"string","description":"Deadline for completing REQUEST_RESPONSE trigger invocation, represented in ISO-8601 duration format.","example":"PT1H","default":"PT1H"},"httpConfig":{"description":"Config required if HTTP subscription type is used.","type":"object","properties":{"url":{"type":"string","description":"URL of the external/custom integration.","example":"https://www.example.com"},"httpDispatchMode":{"type":"string","description":"HTTP response modes, i.e. SYNC, ASYNC, or DYNAMIC.","enum":["SYNC","ASYNC","DYNAMIC"],"example":"SYNC"},"httpAuthenticationType":{"type":"string","description":"Defines the HTTP Authentication type. Additional values may be added in the future.\n\nIf *NO_AUTH* is selected, no extra information will be in HttpConfig.\n\nIf *BASIC_AUTH* is selected, HttpConfig will include BasicAuthConfig with Username and Password as strings.\n\nIf *BEARER_TOKEN* is selected, HttpConfig will include BearerTokenAuthConfig with Token as string.","enum":["NO_AUTH","BASIC_AUTH","BEARER_TOKEN"],"default":"NO_AUTH","example":"BASIC_AUTH"},"basicAuthConfig":{"type":"object","properties":{"userName":{"type":"string","description":"The username to authenticate.","example":"user@example.com"},"password":{"type":"string","nullable":true,"description":"The password to authenticate. On response, this field is set to null as to not return secrets.","example":null}},"description":"Config required if BASIC_AUTH is used."},"bearerTokenAuthConfig":{"type":"object","properties":{"bearerToken":{"type":"string","nullable":true,"description":"Bearer token","example":null}},"description":"Config required if BEARER_TOKEN authentication is used. On response, this field is set to null as to not return secrets."}},"required":["url","httpDispatchMode"]},"eventBridgeConfig":{"description":"Config required if EVENTBRIDGE subscription type is used.","type":"object","properties":{"awsAccount":{"type":"string","description":"AWS Account Number (12-digit number) that has the EventBridge Partner Event Source Resource.","example":"123456789012"},"awsRegion":{"type":"string","description":"AWS Region that has the EventBridge Partner Event Source Resource. See https://docs.aws.amazon.com/general/latest/gr/rande.html for a full list of available values.","example":"us-west-1"}},"required":["awsAccount","awsRegion"]},"enabled":{"type":"boolean","description":"Whether subscription should receive real-time trigger invocations or not.\nTest trigger invocations are always enabled regardless of this option.","default":true,"example":true},"filter":{"type":"string","description":"JSONPath filter to conditionally invoke trigger when expression evaluates to true.","example":"$[?($.identityId == \"201327fda1c44704ac01181e963d463c\")]","externalDocs":{"description":"JSONPath filter documentation","url":"https://developer.sailpoint.com/triggers/filtering_event_triggers.html#filtering-event-triggers"}}}}}}},"400":{"description":"Client Error - Returned if the request body is invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}}}}},"401":{"description":"Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"A message describing the error","example":"JWT validation failed: JWT is expired"}}}}}},"403":{"description":"Forbidden - Returned if the user you are running as, doesn't have access to this end-point.","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}},"examples":{"403":{"summary":"An example of a 403 response object","value":{"detailCode":"403 Forbidden","trackingId":"b21b1f7ce4da4d639f2c62a57171b427","messages":[{"locale":"en-US","localeOrigin":"DEFAULT","text":"The server understood the request but refuses to authorize it."}]}}}}}},"404":{"description":"Not Found - returned if the request URL refers to a resource or object that does not exist","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}},"examples":{"404":{"summary":"An example of a 404 response object","value":{"detailCode":"404 Not found","trackingId":"b21b1f7ce4da4d639f2c62a57171b427","messages":[{"locale":"en-US","localeOrigin":"DEFAULT","text":"The server did not find a current representation for the target resource."}]}}}}}},"429":{"description":"Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"description":"A message describing the error","example":" Rate Limit Exceeded "}}}}}},"500":{"description":"Internal Server Error - Returned if there is an unexpected error.","content":{"application/json":{"schema":{"type":"object","properties":{"detailCode":{"type":"string","description":"Fine-grained error code providing more detail of the error.","example":"400.1 Bad Request Content"},"trackingId":{"type":"string","description":"Unique tracking id for the error.","example":"e7eab60924f64aa284175b9fa3309599"},"messages":{"type":"array","description":"Generic localized reason for error","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}},"causes":{"type":"array","description":"Plain-text descriptive reasons to provide additional detail to the text provided in the messages field","items":{"type":"object","properties":{"locale":{"type":"string","description":"The locale for the message text, a BCP 47 language tag.","example":"en-US"},"localeOrigin":{"type":"string","enum":["DEFAULT","REQUEST"],"description":"An indicator of how the locale was selected. *DEFAULT* means the locale is the system default. *REQUEST* means the locale was selected from the request context (i.e., best match based on the *Accept-Language* header). Additional values may be added in the future without notice.","example":"DEFAULT"},"text":{"type":"string","description":"Actual text of the error message in the indicated locale.","example":"The request was syntactically correct but its content is semantically invalid."}}}}}},"examples":{"500":{"summary":"An example of a 500 response object","value":{"detailCode":"500.0 Internal Fault","trackingId":"b21b1f7ce4da4d639f2c62a57171b427","messages":[{"locale":"en-US","localeOrigin":"DEFAULT","text":"An internal fault occurred."}]}}}}}}},"security":[{"oauth2":["idn:trigger-service-subscriptions:update"]}],"method":"put","path":"/trigger-subscriptions/{id}","servers":[{"url":"https://{tenant}.api.identitynow.com/beta","description":"This is the beta API server.","variables":{"tenant":{"default":"sailpoint","description":"This is the name of your tenant, typically your company's name."}}}],"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth2 Bearer token (JWT). See [IdentityNow REST API Authentication](https://developer.sailpoint.com/docs/authentication.html) for more information.\n- Directions for generating a [personal access token](https://developer.sailpoint.com/docs/authentication.html#personal-access-tokens)\n- Directions using [client credentials flow](https://developer.sailpoint.com/docs/authentication.html#client-credentials-grant-flow)\n- Directions for using [authorization code flow](https://developer.sailpoint.com/docs/authentication.html#authorization-code-grant-flow)\n\nWhich authentication method should I choose? See our [guide](https://developer.sailpoint.com/docs/authentication.html#which-oauth-2-0-grant-flow-should-i-use)\n\nLearn more about how to find your `tokenUrl` and `authorizationUrl` [in our docs](https://developer.sailpoint.com/docs/authentication.html#finding-your-tenant-s-oauth-details)\n","flows":{"clientCredentials":{"tokenUrl":"https://tenant.api.identitynow.com/oauth/token","scopes":{"sp:scopes:default":"default scope","sp:scopes:all":"access to all scopes"}},"authorizationCode":{"authorizationUrl":"https://tenant.identitynow.com/oauth/authorize","tokenUrl":"https://tenant.api.identitynow.com/oauth/token","scopes":{"sp:scopes:default":"default scope","sp:scopes:all":"access to all scopes"}}}}},"jsonRequestBodyExample":{"name":"Access request subscription","description":"Access requested to site xyz","type":"HTTP","responseDeadline":"PT1H","httpConfig":{"url":"https://www.example.com","httpDispatchMode":"SYNC","httpAuthenticationType":"BASIC_AUTH","basicAuthConfig":{"userName":"user@example.com","password":null},"bearerTokenAuthConfig":{"bearerToken":null}},"eventBridgeConfig":{"awsAccount":"123456789012","awsRegion":"us-west-1"},"enabled":true,"filter":"$[?($.identityId == \"201327fda1c44704ac01181e963d463c\")]"},"info":{"contact":{"email":"developers@sailpoint.com","name":"Developer Relations","url":"https://developer.sailpoint.com/discuss"},"description":"These are the public, beta APIs for SailPoint's SaaS services and are subject to change.","title":"SailPoint - Beta SaaS API","version":"3.1.0-beta"},"postman":{"name":"Update a Subscription","description":{"content":"This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing\n Subscription is completely replaced. The following fields are immutable:\n\n\n * id\n\n * triggerId\n\n\n Attempts to modify these fields result in 400.","type":"text/plain"},"url":{"path":["trigger-subscriptions",":id"],"host":["{{baseUrl}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) Subscription ID","type":"text/plain"},"type":"any","value":"","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"\"\"","options":{"raw":{"language":"json"}}},"auth":{"type":"oauth2","oauth2":[]}}} sidebar_class_name: "put api-method" info_path: docs/sailpoint-api-beta/sail-point-beta-saa-s-api --- import ApiTabs from "@theme/ApiTabs"; import MimeTabs from "@theme/MimeTabs"; import ParamsItem from "@theme/ParamsItem"; import ResponseSamples from "@theme/ResponseSamples"; import SchemaItem from "@theme/SchemaItem" import SchemaTabs from "@theme/SchemaTabs"; import DiscriminatorTabs from "@theme/DiscriminatorTabs"; import TabItem from "@theme/TabItem"; ## Update a Subscription This API updates a trigger subscription in IdentityNow, using a full object representation. In other words, the existing Subscription is completely replaced. The following fields are immutable: * id * triggerId Attempts to modify these fields result in 400.
Path Parameters
Request Body required
    httpConfig object
    Config required if HTTP subscription type is used.
    basicAuthConfig object
    Config required if BASIC_AUTH is used.
    bearerTokenAuthConfig object
    Config required if BEARER_TOKEN authentication is used. On response, this field is set to null as to not return secrets.
    eventBridgeConfig object
    Config required if EVENTBRIDGE subscription type is used.
Updated subscription.
Schema
    httpConfig object
    Config required if HTTP subscription type is used.
    basicAuthConfig object
    Config required if BASIC_AUTH is used.
    bearerTokenAuthConfig object
    Config required if BEARER_TOKEN authentication is used. On response, this field is set to null as to not return secrets.
    eventBridgeConfig object
    Config required if EVENTBRIDGE subscription type is used.
Client Error - Returned if the request body is invalid.
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
Unauthorized - Returned if there is no authorization header, or if the JWT token is expired.
Schema
Forbidden - Returned if the user you are running as, doesn't have access to this end-point.
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
Not Found - returned if the request URL refers to a resource or object that does not exist
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field
Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again.
Schema
Internal Server Error - Returned if there is an unexpected error.
Schema
    messages object[]
    Generic localized reason for error
    causes object[]
    Plain-text descriptive reasons to provide additional detail to the text provided in the messages field