diff --git a/.graphqlconfig.yml b/.graphqlconfig.yml new file mode 100644 index 0000000..a7880b0 --- /dev/null +++ b/.graphqlconfig.yml @@ -0,0 +1,15 @@ +projects: + lunchrun: + schemaPath: amplify/backend/api/lunchrun/build/schema.graphql + includes: + - src/graphql/**/*.js + excludes: + - ./amplify/** + extensions: + amplify: + codeGenTarget: javascript + generatedFileName: '' + docsFilePath: src/graphql +extensions: + amplify: + version: 3 diff --git a/amplify/backend/api/lunchrun/parameters.json b/amplify/backend/api/lunchrun/parameters.json new file mode 100644 index 0000000..6b4066f --- /dev/null +++ b/amplify/backend/api/lunchrun/parameters.json @@ -0,0 +1,5 @@ +{ + "AppSyncApiName": "lunchrun", + "DynamoDBBillingMode": "PAY_PER_REQUEST", + "DynamoDBEnableServerSideEncryption": "false" +} \ No newline at end of file diff --git a/amplify/backend/api/lunchrun/schema.graphql b/amplify/backend/api/lunchrun/schema.graphql new file mode 100644 index 0000000..1f5a301 --- /dev/null +++ b/amplify/backend/api/lunchrun/schema.graphql @@ -0,0 +1,5 @@ +type Todo @model { + id: ID! + name: String! + description: String +} \ No newline at end of file diff --git a/amplify/backend/api/lunchrun/stacks/CustomResources.json b/amplify/backend/api/lunchrun/stacks/CustomResources.json new file mode 100644 index 0000000..2d8cf0a --- /dev/null +++ b/amplify/backend/api/lunchrun/stacks/CustomResources.json @@ -0,0 +1,61 @@ +{ + "AWSTemplateFormatVersion": "2010-09-09", + "Description": "An auto-generated nested stack.", + "Metadata": {}, + "Parameters": { + "AppSyncApiId": { + "Type": "String", + "Description": "The id of the AppSync API associated with this project." + }, + "AppSyncApiName": { + "Type": "String", + "Description": "The name of the AppSync API", + "Default": "AppSyncSimpleTransform" + }, + "env": { + "Type": "String", + "Description": "The environment name. e.g. Dev, Test, or Production", + "Default": "NONE" + }, + "S3DeploymentBucket": { + "Type": "String", + "Description": "The S3 bucket containing all deployment assets for the project." + }, + "S3DeploymentRootKey": { + "Type": "String", + "Description": "An S3 key relative to the S3DeploymentBucket that points to the root\nof the deployment directory." + } + }, + "Resources": { + "EmptyResource": { + "Type": "Custom::EmptyResource", + "Condition": "AlwaysFalse" + } + }, + "Conditions": { + "HasEnvironmentParameter": { + "Fn::Not": [ + { + "Fn::Equals": [ + { + "Ref": "env" + }, + "NONE" + ] + } + ] + }, + "AlwaysFalse": { + "Fn::Equals": [ + "true", + "false" + ] + } + }, + "Outputs": { + "EmptyOutput": { + "Description": "An empty output. You may delete this if you have at least one resource above.", + "Value": "" + } + } +} \ No newline at end of file diff --git a/amplify/backend/api/lunchrun/transform.conf.json b/amplify/backend/api/lunchrun/transform.conf.json new file mode 100644 index 0000000..98e1e19 --- /dev/null +++ b/amplify/backend/api/lunchrun/transform.conf.json @@ -0,0 +1,4 @@ +{ + "Version": 5, + "ElasticsearchWarning": true +} \ No newline at end of file diff --git a/amplify/backend/backend-config.json b/amplify/backend/backend-config.json index 9e26dfe..b7c2fce 100644 --- a/amplify/backend/backend-config.json +++ b/amplify/backend/backend-config.json @@ -1 +1,20 @@ -{} \ No newline at end of file +{ + "api": { + "lunchrun": { + "service": "AppSync", + "providerPlugin": "awscloudformation", + "output": { + "authConfig": { + "additionalAuthenticationProviders": [], + "defaultAuthentication": { + "authenticationType": "API_KEY", + "apiKeyConfig": { + "description": "lunchrunapikey", + "apiKeyExpirationDays": 7 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/App.js b/src/App.js index ce9cbd2..4b87c0a 100644 --- a/src/App.js +++ b/src/App.js @@ -1,26 +1,78 @@ -import React from 'react'; -import logo from './logo.svg'; -import './App.css'; +/* src/App.js */ +import React, { useEffect, useState } from 'react' +import { API, graphqlOperation } from 'aws-amplify' +import { createTodo } from './graphql/mutations' +import { listTodos } from './graphql/queries' + +const initialState = { name: '', description: '' } + +const App = () => { + const [formState, setFormState] = useState(initialState) + const [todos, setTodos] = useState([]) + + useEffect(() => { + fetchTodos() + }, []) + + function setInput(key, value) { + setFormState({ ...formState, [key]: value }) + } + + async function fetchTodos() { + try { + const todoData = await API.graphql(graphqlOperation(listTodos)) + const todos = todoData.data.listTodos.items + setTodos(todos) + } catch (err) { console.log('error fetching todos') } + } + + async function addTodo() { + try { + if (!formState.name || !formState.description) return + const todo = { ...formState } + setTodos([...todos, todo]) + setFormState(initialState) + await API.graphql(graphqlOperation(createTodo, {input: todo})) + } catch (err) { + console.log('error creating todo:', err) + } + } -function App() { return ( -
-
- logo -

- Edit src/App.js and save to reload. -

- - Learn React - -
+
+

Amplify Todos

+ setInput('name', event.target.value)} + style={styles.input} + value={formState.name} + placeholder="Name" + /> + setInput('description', event.target.value)} + style={styles.input} + value={formState.description} + placeholder="Description" + /> + + { + todos.map((todo, index) => ( +
+

{todo.name}

+

{todo.description}

+
+ )) + }
- ); + ) } -export default App; +const styles = { + container: { width: 400, margin: '0 auto', display: 'flex', flex: 1, flexDirection: 'column', justifyContent: 'center', padding: 20 }, + todo: { marginBottom: 15 }, + input: { border: 'none', backgroundColor: '#ddd', marginBottom: 10, padding: 8, fontSize: 18 }, + todoName: { fontSize: 20, fontWeight: 'bold' }, + todoDescription: { marginBottom: 0 }, + button: { backgroundColor: 'black', color: 'white', outline: 'none', fontSize: 18, padding: '12px 0px' } +} + +export default App \ No newline at end of file diff --git a/src/graphql/mutations.js b/src/graphql/mutations.js new file mode 100644 index 0000000..7e6fb59 --- /dev/null +++ b/src/graphql/mutations.js @@ -0,0 +1,45 @@ +/* eslint-disable */ +// this is an auto generated file. This will be overwritten + +export const createTodo = /* GraphQL */ ` + mutation CreateTodo( + $input: CreateTodoInput! + $condition: ModelTodoConditionInput + ) { + createTodo(input: $input, condition: $condition) { + id + name + description + createdAt + updatedAt + } + } +`; +export const updateTodo = /* GraphQL */ ` + mutation UpdateTodo( + $input: UpdateTodoInput! + $condition: ModelTodoConditionInput + ) { + updateTodo(input: $input, condition: $condition) { + id + name + description + createdAt + updatedAt + } + } +`; +export const deleteTodo = /* GraphQL */ ` + mutation DeleteTodo( + $input: DeleteTodoInput! + $condition: ModelTodoConditionInput + ) { + deleteTodo(input: $input, condition: $condition) { + id + name + description + createdAt + updatedAt + } + } +`; diff --git a/src/graphql/queries.js b/src/graphql/queries.js new file mode 100644 index 0000000..0260171 --- /dev/null +++ b/src/graphql/queries.js @@ -0,0 +1,32 @@ +/* eslint-disable */ +// this is an auto generated file. This will be overwritten + +export const getTodo = /* GraphQL */ ` + query GetTodo($id: ID!) { + getTodo(id: $id) { + id + name + description + createdAt + updatedAt + } + } +`; +export const listTodos = /* GraphQL */ ` + query ListTodos( + $filter: ModelTodoFilterInput + $limit: Int + $nextToken: String + ) { + listTodos(filter: $filter, limit: $limit, nextToken: $nextToken) { + items { + id + name + description + createdAt + updatedAt + } + nextToken + } + } +`; diff --git a/src/graphql/schema.json b/src/graphql/schema.json new file mode 100644 index 0000000..11a7467 --- /dev/null +++ b/src/graphql/schema.json @@ -0,0 +1,2192 @@ +{ + "data" : { + "__schema" : { + "queryType" : { + "name" : "Query" + }, + "mutationType" : { + "name" : "Mutation" + }, + "subscriptionType" : { + "name" : "Subscription" + }, + "types" : [ { + "kind" : "OBJECT", + "name" : "Query", + "description" : null, + "fields" : [ { + "name" : "getTodo", + "description" : null, + "args" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "listTodos", + "description" : null, + "args" : [ { + "name" : "filter", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoFilterInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "limit", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "nextToken", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "ModelTodoConnection", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Todo", + "description" : null, + "fields" : [ { + "name" : "id", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "createdAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updatedAt", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "ID", + "description" : "Built-in ID", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "String", + "description" : "Built-in String", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "AWSDateTime", + "description" : "The `AWSDateTime` scalar type provided by AWS AppSync, represents a valid ***extended*** [ISO 8601 DateTime](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) string. In other words, this scalar type accepts datetime strings of the form `YYYY-MM-DDThh:mm:ss.SSSZ`. The scalar can also accept \"negative years\" of the form `-YYYY` which correspond to years before `0000`. For example, \"**-2017-01-01T00:00Z**\" and \"**-9999-01-01T00:00Z**\" are both valid datetime strings. The field after the two digit seconds field is a nanoseconds field. It can accept between 1 and 9 digits. So, for example, \"**1970-01-01T12:00:00.2Z**\", \"**1970-01-01T12:00:00.277Z**\" and \"**1970-01-01T12:00:00.123456789Z**\" are all valid datetime strings. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The [time zone offset](https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators) is compulsory for this scalar. The time zone offset must either be `Z` (representing the UTC time zone) or be in the format `±hh:mm:ss`. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard.", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "ModelTodoConnection", + "description" : null, + "fields" : [ { + "name" : "items", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "nextToken", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoFilterInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoFilterInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoFilterInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelIDInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "contains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "notContains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "beginsWith", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "size", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelSizeInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "Boolean", + "description" : "Built-in Boolean", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "description" : null, + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "binary", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "binarySet", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "bool", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "list", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "map", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "number", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "numberSet", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "string", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "stringSet", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "_null", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelSizeInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "Int", + "description" : "Built-in Int", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "contains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "notContains", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "beginsWith", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "size", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelSizeInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Mutation", + "description" : null, + "fields" : [ { + "name" : "createTodo", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "CreateTodoInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "updateTodo", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "UpdateTodoInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deleteTodo", + "description" : null, + "args" : [ { + "name" : "input", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "DeleteTodoInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "condition", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "CreateTodoInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "name", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "name", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelStringInput", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "and", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "or", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "not", + "description" : null, + "type" : { + "kind" : "INPUT_OBJECT", + "name" : "ModelTodoConditionInput", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "UpdateTodoInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "name", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "description", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "DeleteTodoInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "id", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "ID", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "Subscription", + "description" : null, + "fields" : [ { + "name" : "onCreateTodo", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onUpdateTodo", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onDeleteTodo", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "Todo", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelFloatInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Float", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "SCALAR", + "name" : "Float", + "description" : "Built-in Float", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelIntInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "le", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "lt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "ge", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "gt", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "between", + "description" : null, + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Int", + "ofType" : null + } + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "ModelSortDirection", + "description" : null, + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "ASC", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "DESC", + "description" : null, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "INPUT_OBJECT", + "name" : "ModelBooleanInput", + "description" : null, + "fields" : null, + "inputFields" : [ { + "name" : "ne", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "eq", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeExists", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : null + }, { + "name" : "attributeType", + "description" : null, + "type" : { + "kind" : "ENUM", + "name" : "ModelAttributeTypes", + "ofType" : null + }, + "defaultValue" : null + } ], + "interfaces" : null, + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Schema", + "description" : "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations.", + "fields" : [ { + "name" : "types", + "description" : "A list of all types supported by this server.", + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "queryType", + "description" : "The type that query operations will be rooted at.", + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "mutationType", + "description" : "If this server supports mutation, the type that mutation operations will be rooted at.", + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "directives", + "description" : "'A list of all directives supported by this server.", + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Directive", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "subscriptionType", + "description" : "'If this server support subscription, the type that subscription operations will be rooted at.", + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Type", + "description" : null, + "fields" : [ { + "name" : "kind", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "ENUM", + "name" : "__TypeKind", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "fields", + "description" : null, + "args" : [ { + "name" : "includeDeprecated", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : "false" + } ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Field", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "interfaces", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "possibleTypes", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "enumValues", + "description" : null, + "args" : [ { + "name" : "includeDeprecated", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "defaultValue" : "false" + } ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__EnumValue", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "inputFields", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__InputValue", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ofType", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "__TypeKind", + "description" : "An enum describing what kind of type a given __Type is", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "SCALAR", + "description" : "Indicates this type is a scalar.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "OBJECT", + "description" : "Indicates this type is an object. `fields` and `interfaces` are valid fields.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INTERFACE", + "description" : "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "UNION", + "description" : "Indicates this type is a union. `possibleTypes` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ENUM", + "description" : "Indicates this type is an enum. `enumValues` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INPUT_OBJECT", + "description" : "Indicates this type is an input object. `inputFields` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "LIST", + "description" : "Indicates this type is a list. `ofType` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "NON_NULL", + "description" : "Indicates this type is a non-null. `ofType` is a valid field.", + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Field", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "args", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__InputValue", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "type", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "isDeprecated", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deprecationReason", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__InputValue", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "type", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__Type", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "defaultValue", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__EnumValue", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "isDeprecated", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "deprecationReason", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "OBJECT", + "name" : "__Directive", + "description" : null, + "fields" : [ { + "name" : "name", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "description", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "locations", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "ENUM", + "name" : "__DirectiveLocation", + "ofType" : null + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "args", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "OBJECT", + "name" : "__InputValue", + "ofType" : null + } + } + } + }, + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "onOperation", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : true, + "deprecationReason" : "Use `locations`." + }, { + "name" : "onFragment", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : true, + "deprecationReason" : "Use `locations`." + }, { + "name" : "onField", + "description" : null, + "args" : [ ], + "type" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + }, + "isDeprecated" : true, + "deprecationReason" : "Use `locations`." + } ], + "inputFields" : null, + "interfaces" : [ ], + "enumValues" : null, + "possibleTypes" : null + }, { + "kind" : "ENUM", + "name" : "__DirectiveLocation", + "description" : "An enum describing valid locations where a directive can be placed", + "fields" : null, + "inputFields" : null, + "interfaces" : null, + "enumValues" : [ { + "name" : "QUERY", + "description" : "Indicates the directive is valid on queries.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "MUTATION", + "description" : "Indicates the directive is valid on mutations.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FIELD", + "description" : "Indicates the directive is valid on fields.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FRAGMENT_DEFINITION", + "description" : "Indicates the directive is valid on fragment definitions.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FRAGMENT_SPREAD", + "description" : "Indicates the directive is valid on fragment spreads.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INLINE_FRAGMENT", + "description" : "Indicates the directive is valid on inline fragments.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "SCHEMA", + "description" : "Indicates the directive is valid on a schema SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "SCALAR", + "description" : "Indicates the directive is valid on a scalar SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "OBJECT", + "description" : "Indicates the directive is valid on an object SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "FIELD_DEFINITION", + "description" : "Indicates the directive is valid on a field SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ARGUMENT_DEFINITION", + "description" : "Indicates the directive is valid on a field argument SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INTERFACE", + "description" : "Indicates the directive is valid on an interface SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "UNION", + "description" : "Indicates the directive is valid on an union SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ENUM", + "description" : "Indicates the directive is valid on an enum SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "ENUM_VALUE", + "description" : "Indicates the directive is valid on an enum value SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INPUT_OBJECT", + "description" : "Indicates the directive is valid on an input object SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + }, { + "name" : "INPUT_FIELD_DEFINITION", + "description" : "Indicates the directive is valid on an input object field SDL definition.", + "isDeprecated" : false, + "deprecationReason" : null + } ], + "possibleTypes" : null + } ], + "directives" : [ { + "name" : "include", + "description" : "Directs the executor to include this field or fragment only when the `if` argument is true", + "locations" : [ "FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT" ], + "args" : [ { + "name" : "if", + "description" : "Included when true.", + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : true, + "onField" : true + }, { + "name" : "skip", + "description" : "Directs the executor to skip this field or fragment when the `if`'argument is true.", + "locations" : [ "FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT" ], + "args" : [ { + "name" : "if", + "description" : "Skipped when true.", + "type" : { + "kind" : "NON_NULL", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "Boolean", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : true, + "onField" : true + }, { + "name" : "defer", + "description" : "This directive allows results to be deferred during execution", + "locations" : [ "FIELD" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : true + }, { + "name" : "aws_publish", + "description" : "Tells the service which subscriptions will be published to when this mutation is called. This directive is deprecated use @aws_susbscribe directive instead.", + "locations" : [ "FIELD_DEFINITION" ], + "args" : [ { + "name" : "subscriptions", + "description" : "List of subscriptions which will be published to when this mutation is called.", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_auth", + "description" : "Directs the schema to enforce authorization on a field", + "locations" : [ "FIELD_DEFINITION" ], + "args" : [ { + "name" : "cognito_groups", + "description" : "List of cognito user pool groups which have access on this field", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_oidc", + "description" : "Tells the service this field/object has access authorized by an OIDC token.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_subscribe", + "description" : "Tells the service which mutation triggers this subscription.", + "locations" : [ "FIELD_DEFINITION" ], + "args" : [ { + "name" : "mutations", + "description" : "List of mutations which will trigger this subscription when they are called.", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_iam", + "description" : "Tells the service this field/object has access authorized by sigv4 signing.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_cognito_user_pools", + "description" : "Tells the service this field/object has access authorized by a Cognito User Pools token.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ { + "name" : "cognito_groups", + "description" : "List of cognito user pool groups which have access on this field", + "type" : { + "kind" : "LIST", + "name" : null, + "ofType" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + } + }, + "defaultValue" : null + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "deprecated", + "description" : null, + "locations" : [ "FIELD_DEFINITION", "ENUM_VALUE" ], + "args" : [ { + "name" : "reason", + "description" : null, + "type" : { + "kind" : "SCALAR", + "name" : "String", + "ofType" : null + }, + "defaultValue" : "\"No longer supported\"" + } ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + }, { + "name" : "aws_api_key", + "description" : "Tells the service this field/object has access authorized by an API key.", + "locations" : [ "OBJECT", "FIELD_DEFINITION" ], + "args" : [ ], + "onOperation" : false, + "onFragment" : false, + "onField" : false + } ] + } + } +} \ No newline at end of file diff --git a/src/graphql/subscriptions.js b/src/graphql/subscriptions.js new file mode 100644 index 0000000..890a1d5 --- /dev/null +++ b/src/graphql/subscriptions.js @@ -0,0 +1,36 @@ +/* eslint-disable */ +// this is an auto generated file. This will be overwritten + +export const onCreateTodo = /* GraphQL */ ` + subscription OnCreateTodo { + onCreateTodo { + id + name + description + createdAt + updatedAt + } + } +`; +export const onUpdateTodo = /* GraphQL */ ` + subscription OnUpdateTodo { + onUpdateTodo { + id + name + description + createdAt + updatedAt + } + } +`; +export const onDeleteTodo = /* GraphQL */ ` + subscription OnDeleteTodo { + onDeleteTodo { + id + name + description + createdAt + updatedAt + } + } +`; diff --git a/src/index.js b/src/index.js index f29feb4..2d8ebee 100644 --- a/src/index.js +++ b/src/index.js @@ -5,7 +5,7 @@ import App from './App'; import * as serviceWorker from './serviceWorker'; import Amplify from "aws-amplify"; import awsExports from "./aws-exports"; -Amplify.configure(awsExports); +Amplify.configure(awsExports); ReactDOM.render(