All Release Notes
Added Extension GraphQL query and mutation schema
21 April 2020
Enhancement
CustomizationGraphQL
Extensions can now be queried, created, updated, and deleted using the GraphQL API.
- [GraphQL API] Added the following types to the GraphQL schema:
AWSLambdaDestination
,AWSLambdaDestinationInput
,ActionType
,AuthorizationHeader
,AuthorizationHeaderInput
,AzureFunctionsAuthentication
,AzureFunctionsAuthenticationInput
,ChangeExtensionDestination
,ChangeExtensionTriggers
,Extension
,ExtensionDestination
,ExtensionDestinationInput
,ExtensionDraft
,ExtensionQueryResult
,ExtensionUpdateAction
,HttpDestination
,HttpDestinationAuthentication
,HttpDestinationAuthenticationInput
,HttpDestinationInput
,SetExtensionKey
,SetExtensionTimeoutInMs
,Trigger
,TriggerInput
. - [GraphQL API] Changed the
Query
type:- Added the
extensions
field to theQuery
type. - Added the
extension
field to theQuery
type.
- Added the
- [GraphQL API] Changed the
Mutation
type:- Added the
deleteExtension
field to theMutation
type. - Added the
updateExtension
field to theMutation
type. - Added the
createExtension
field to theMutation
type.
- Added the
Introduced the following changes to the GraphQL schema (in SDL format):
extend type Query {extension("Queries with specified ID"id: String,"Queries with specified key"key: String): Extensionextensions(where: String, sort: [String!], limit: Int, offset: Int): ExtensionQueryResult!}extend type Mutation {createExtension(draft: ExtensionDraft!): ExtensiondeleteExtension(version: Long!,"Queries with specified ID"id: String,"Queries with specified key"key: String): ExtensionupdateExtension(version: Long!, actions: [ExtensionUpdateAction!]!,"Queries with specified ID"id: String,"Queries with specified key"key: String): Extension}type AWSLambdaDestination implements ExtensionDestination {arn: String!accessKey: String!accessSecret: String!type: String!}input AWSLambdaDestinationInput {arn: String!accessKey: String!accessSecret: String!}enum ActionType {UpdateCreate}type AuthorizationHeader implements HttpDestinationAuthentication {headerValue: String!type: String!}input AuthorizationHeaderInput {headerValue: String!}type AzureFunctionsAuthentication implements HttpDestinationAuthentication {key: String!type: String!}input AzureFunctionsAuthenticationInput {key: String!}input ChangeExtensionDestination {destination: ExtensionDestinationInput!}input ChangeExtensionTriggers {triggers: [TriggerInput!]!}type Extension implements Versioned {key: Stringdestination: ExtensionDestination!triggers: [Trigger!]!timeoutInMs: Intid: String!version: Long!createdAt: DateTime!lastModifiedAt: DateTime!createdBy: InitiatorlastModifiedBy: Initiator}interface ExtensionDestination {type: String!}input ExtensionDestinationInput {HTTP: HttpDestinationInputAWSLambda: AWSLambdaDestinationInput}input ExtensionDraft {key: Stringdestination: ExtensionDestinationInput!triggers: [TriggerInput!]!timeoutInMs: Int}type ExtensionQueryResult {offset: Int!count: Int!total: Long!results: [Extension!]!}input ExtensionUpdateAction {changeDestination: ChangeExtensionDestinationchangeTriggers: ChangeExtensionTriggerssetKey: SetExtensionKeysetTimeoutInMs: SetExtensionTimeoutInMs}type HttpDestination implements ExtensionDestination {type: String!url: String!authentication: HttpDestinationAuthentication}interface HttpDestinationAuthentication {type: String!}input HttpDestinationAuthenticationInput {AuthorizationHeader: AuthorizationHeaderInputAzureFunctions: AzureFunctionsAuthenticationInput}input HttpDestinationInput {url: String!authentication: HttpDestinationAuthenticationInput}input SetExtensionKey {key: String}input SetExtensionTimeoutInMs {timeoutInMs: Int}input SetStoreDistributionChannels {channels: [ResourceIdentifierInput!]}type Trigger {resourceTypeId: String!actions: [ActionType!]!}input TriggerInput {resourceTypeId: String!actions: [ActionType!]}