diff --git a/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultInfoGenerator.cs b/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultInfoGenerator.cs index e959df618e7..cb288586f60 100644 --- a/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultInfoGenerator.cs +++ b/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultInfoGenerator.cs @@ -65,7 +65,7 @@ typeDescriptor as ComplexTypeDescriptor ?? constructorBuilder.AddCode( AssignmentBuilder .New() - .SetLefthandSide(prop.Name) + .SetLefthandSide(GetLeftPropertyAssignment(prop.Name)) .SetRighthandSide(paramName)); } diff --git a/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultTypeGenerator.cs b/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultTypeGenerator.cs index 41fa4c9b67d..4ed6b9cd340 100644 --- a/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultTypeGenerator.cs +++ b/src/StrawberryShake/CodeGeneration/src/CodeGeneration.CSharp/Generators/ResultTypeGenerator.cs @@ -8,7 +8,8 @@ namespace StrawberryShake.CodeGeneration.CSharp.Generators { public class ResultTypeGenerator : CodeGenerator { - protected override void Generate(ObjectTypeDescriptor descriptor, + protected override void Generate( + ObjectTypeDescriptor descriptor, CSharpSyntaxGeneratorSettings settings, CodeWriter writer, out string fileName, @@ -47,11 +48,7 @@ protected override void Generate(ObjectTypeDescriptor descriptor, .AddParameter(paramName, x => x.SetType(propTypeBuilder)) .AddCode(AssignmentBuilder .New() - .SetLefthandSide( - (prop.Name.Value is WellKnownNames.TypeName - ? "this." - : string.Empty) + - prop.Name) + .SetLefthandSide(GetLeftPropertyAssignment(prop.Name)) .SetRighthandSide(paramName)); } diff --git a/src/StrawberryShake/CodeGeneration/src/CodeGeneration/Utilities/NameUtils.cs b/src/StrawberryShake/CodeGeneration/src/CodeGeneration/Utilities/NameUtils.cs index 893f3fde168..7eea4e56f7a 100644 --- a/src/StrawberryShake/CodeGeneration/src/CodeGeneration/Utilities/NameUtils.cs +++ b/src/StrawberryShake/CodeGeneration/src/CodeGeneration/Utilities/NameUtils.cs @@ -101,6 +101,17 @@ public static string GetFieldName(string fieldName) return "_" + GetParamNameUnsafe(fieldName); } + public static string GetLeftPropertyAssignment(string property) + { + if (property is { Length: >0 } && property[0] == '_') + { + return $"this.{property}"; + + } + + return property; + } + public static string GetParameterName(string parameterName) { return Keywords.ToSafeName(GetParamNameUnsafe(parameterName)); @@ -108,7 +119,7 @@ public static string GetParameterName(string parameterName) public static string GetParamNameUnsafe(string parameterName) { - if (parameterName == WellKnownNames.TypeName) + if (parameterName.Length > 0 && parameterName[0] == '_') { return parameterName; } diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/StarWarsIntrospectionTest.Client.cs b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/StarWarsIntrospectionTest.Client.cs new file mode 100644 index 00000000000..ff96b0219ec --- /dev/null +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/StarWarsIntrospectionTest.Client.cs @@ -0,0 +1,5087 @@ +// ReSharper disable BuiltInTypeReferenceStyle +// ReSharper disable RedundantNameQualifier +// ReSharper disable ArrangeObjectCreationWhenTypeEvident +// ReSharper disable UnusedType.Global +// ReSharper disable PartialTypeWithSinglePart +// ReSharper disable UnusedMethodReturnValue.Local +// ReSharper disable ConvertToAutoProperty +// ReSharper disable UnusedMember.Global +// ReSharper disable SuggestVarOrType_SimpleTypes +// ReSharper disable InconsistentNaming + +// StarWarsIntrospectionClient + +// +#nullable enable + +namespace Microsoft.Extensions.DependencyInjection +{ + // StrawberryShake.CodeGeneration.CSharp.Generators.DependencyInjectionGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public static partial class StarWarsIntrospectionClientServiceCollectionExtensions + { + public static global::StrawberryShake.IClientBuilder AddStarWarsIntrospectionClient(this global::Microsoft.Extensions.DependencyInjection.IServiceCollection services, global::StrawberryShake.ExecutionStrategy strategy = global::StrawberryShake.ExecutionStrategy.NetworkOnly) + { + var serviceCollection = new global::Microsoft.Extensions.DependencyInjection.ServiceCollection(); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => + { + ConfigureClientDefault(sp, serviceCollection, strategy); + return new ClientServiceProvider(global::Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(serviceCollection)); + }); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.StarWarsIntrospectionClientStoreAccessor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + return new global::StrawberryShake.ClientBuilder("StarWarsIntrospectionClient", services, serviceCollection); + } + + private static global::Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureClientDefault(global::System.IServiceProvider parentServices, global::Microsoft.Extensions.DependencyInjection.ServiceCollection services, global::StrawberryShake.ExecutionStrategy strategy = global::StrawberryShake.ExecutionStrategy.NetworkOnly) + { + global::Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddSingleton(services, sp => new global::StrawberryShake.OperationStore(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => + { + var clientFactory = global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(parentServices); + return new global::StrawberryShake.Transport.Http.HttpConnection(() => clientFactory.CreateClient("StarWarsIntrospectionClient")); + }); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::StrawberryShake.Serialization.SerializerResolver(global::System.Linq.Enumerable.Concat(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(parentServices), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.IntrospectionQueryResultFactory>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.IntrospectionQueryBuilder>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + return services; + } + + private class ClientServiceProvider : System.IServiceProvider, System.IDisposable + { + private readonly System.IServiceProvider _provider; + public ClientServiceProvider(System.IServiceProvider provider) + { + _provider = provider; + } + + public object? GetService(System.Type serviceType) + { + return _provider.GetService(serviceType); + } + + public void Dispose() + { + if (_provider is System.IDisposable d) + { + d.Dispose(); + } + } + } + } +} + +namespace StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection +{ + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryResult : global::System.IEquatable, IIntrospectionQueryResult + { + public IntrospectionQueryResult(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema __schema) + { + this.__schema = __schema; + } + + /// + /// Access the current type schema of this server. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema __schema + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQueryResult? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (__schema.Equals(other.__schema)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQueryResult)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * __schema.GetHashCode(); + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema___Schema : global::System.IEquatable, IIntrospectionQuery___schema___Schema + { + public IntrospectionQuery___schema___Schema(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_QueryType queryType, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_MutationType? mutationType, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_SubscriptionType? subscriptionType, global::System.Collections.Generic.IReadOnlyList types, global::System.Collections.Generic.IReadOnlyList directives) + { + QueryType = queryType; + MutationType = mutationType; + SubscriptionType = subscriptionType; + Types = types; + Directives = directives; + } + + /// + /// The type that query operations will be rooted at. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_QueryType QueryType + { + get; + } + + /// + /// If this server supports mutation, the type that mutation operations will be rooted at. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_MutationType? MutationType + { + get; + } + + /// + /// If this server support subscription, the type that subscription operations will be rooted at. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_SubscriptionType? SubscriptionType + { + get; + } + + /// + /// A list of all types supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Types + { + get; + } + + /// + /// A list of all directives supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Directives + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema___Schema? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (QueryType.Equals(other.QueryType)) && ((MutationType is null && other.MutationType is null) || MutationType != null && MutationType.Equals(other.MutationType)) && ((SubscriptionType is null && other.SubscriptionType is null) || SubscriptionType != null && SubscriptionType.Equals(other.SubscriptionType)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Types, other.Types) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Directives, other.Directives); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema___Schema)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * QueryType.GetHashCode(); + if (MutationType != null) + { + hash ^= 397 * MutationType.GetHashCode(); + } + + if (SubscriptionType != null) + { + hash ^= 397 * SubscriptionType.GetHashCode(); + } + + foreach (var Types_elm in Types) + { + hash ^= 397 * Types_elm.GetHashCode(); + } + + foreach (var Directives_elm in Directives) + { + hash ^= 397 * Directives_elm.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_QueryType___Type : global::System.IEquatable, IIntrospectionQuery___schema_QueryType___Type + { + public IntrospectionQuery___schema_QueryType___Type(global::System.String? name) + { + Name = name; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_QueryType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_QueryType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_MutationType___Type : global::System.IEquatable, IIntrospectionQuery___schema_MutationType___Type + { + public IntrospectionQuery___schema_MutationType___Type(global::System.String? name) + { + Name = name; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_MutationType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_MutationType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_SubscriptionType___Type : global::System.IEquatable, IIntrospectionQuery___schema_SubscriptionType___Type + { + public IntrospectionQuery___schema_SubscriptionType___Type(global::System.String? name) + { + Name = name; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_SubscriptionType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_SubscriptionType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types___Type + { + public IntrospectionQuery___schema_Types___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::System.String? description, global::System.Collections.Generic.IReadOnlyList? fields, global::System.Collections.Generic.IReadOnlyList? inputFields, global::System.Collections.Generic.IReadOnlyList? interfaces, global::System.Collections.Generic.IReadOnlyList? enumValues, global::System.Collections.Generic.IReadOnlyList? possibleTypes) + { + Kind = kind; + Name = name; + Description = description; + Fields = fields; + InputFields = inputFields; + Interfaces = interfaces; + EnumValues = enumValues; + PossibleTypes = possibleTypes; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Fields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? InputFields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Interfaces + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? EnumValues + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? PossibleTypes + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Fields, other.Fields) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(InputFields, other.InputFields) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Interfaces, other.Interfaces) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(EnumValues, other.EnumValues) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(PossibleTypes, other.PossibleTypes); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + if (Fields != null) + { + foreach (var Fields_elm in Fields) + { + hash ^= 397 * Fields_elm.GetHashCode(); + } + } + + if (InputFields != null) + { + foreach (var InputFields_elm in InputFields) + { + hash ^= 397 * InputFields_elm.GetHashCode(); + } + } + + if (Interfaces != null) + { + foreach (var Interfaces_elm in Interfaces) + { + hash ^= 397 * Interfaces_elm.GetHashCode(); + } + } + + if (EnumValues != null) + { + foreach (var EnumValues_elm in EnumValues) + { + hash ^= 397 * EnumValues_elm.GetHashCode(); + } + } + + if (PossibleTypes != null) + { + foreach (var PossibleTypes_elm in PossibleTypes) + { + hash ^= 397 * PossibleTypes_elm.GetHashCode(); + } + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + /// + /// In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Directives___Directive : global::System.IEquatable, IIntrospectionQuery___schema_Directives___Directive + { + public IntrospectionQuery___schema_Directives___Directive(global::System.String name, global::System.String? description, global::System.Collections.Generic.IReadOnlyList args, global::System.Boolean onOperation, global::System.Boolean onFragment, global::System.Boolean onField) + { + Name = name; + Description = description; + Args = args; + OnOperation = onOperation; + OnFragment = onFragment; + OnField = onField; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::System.Boolean OnOperation + { + get; + } + + public global::System.Boolean OnFragment + { + get; + } + + public global::System.Boolean OnField + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Directives___Directive? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Args, other.Args) && OnOperation == other.OnOperation && OnFragment == other.OnFragment && OnField == other.OnField; + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Directives___Directive)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + foreach (var Args_elm in Args) + { + hash ^= 397 * Args_elm.GetHashCode(); + } + + hash ^= 397 * OnOperation.GetHashCode(); + hash ^= 397 * OnFragment.GetHashCode(); + hash ^= 397 * OnField.GetHashCode(); + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields___Field : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields___Field + { + public IntrospectionQuery___schema_Types_Fields___Field(global::System.String name, global::System.String? description, global::System.Collections.Generic.IReadOnlyList args, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Fields_Type type, global::System.Boolean isDeprecated, global::System.String? deprecationReason) + { + Name = name; + Description = description; + Args = args; + Type = type; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Fields_Type Type + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields___Field? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Args, other.Args) && Type.Equals(other.Type) && IsDeprecated == other.IsDeprecated && ((DeprecationReason is null && other.DeprecationReason is null) || DeprecationReason != null && DeprecationReason.Equals(other.DeprecationReason)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields___Field)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + foreach (var Args_elm in Args) + { + hash ^= 397 * Args_elm.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + hash ^= 397 * IsDeprecated.GetHashCode(); + if (DeprecationReason != null) + { + hash ^= 397 * DeprecationReason.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_InputFields___InputValue : global::System.IEquatable, IIntrospectionQuery___schema_Types_InputFields___InputValue + { + public IntrospectionQuery___schema_Types_InputFields___InputValue(global::System.String name, global::System.String? description, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type type, global::System.String? defaultValue) + { + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_InputFields___InputValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && Type.Equals(other.Type) && ((DefaultValue is null && other.DefaultValue is null) || DefaultValue != null && DefaultValue.Equals(other.DefaultValue)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_InputFields___InputValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + if (DefaultValue != null) + { + hash ^= 397 * DefaultValue.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces___Type + { + public IntrospectionQuery___schema_Types_Interfaces___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_EnumValues___EnumValue : global::System.IEquatable, IIntrospectionQuery___schema_Types_EnumValues___EnumValue + { + public IntrospectionQuery___schema_Types_EnumValues___EnumValue(global::System.String name, global::System.String? description, global::System.Boolean isDeprecated, global::System.String? deprecationReason) + { + Name = name; + Description = description; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_EnumValues___EnumValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && IsDeprecated == other.IsDeprecated && ((DeprecationReason is null && other.DeprecationReason is null) || DeprecationReason != null && DeprecationReason.Equals(other.DeprecationReason)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_EnumValues___EnumValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * IsDeprecated.GetHashCode(); + if (DeprecationReason != null) + { + hash ^= 397 * DeprecationReason.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_PossibleTypes___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_PossibleTypes___Type + { + public IntrospectionQuery___schema_Types_PossibleTypes___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_PossibleTypes___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_PossibleTypes___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Directives_Args___InputValue : global::System.IEquatable, IIntrospectionQuery___schema_Directives_Args___InputValue + { + public IntrospectionQuery___schema_Directives_Args___InputValue(global::System.String name, global::System.String? description, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type type, global::System.String? defaultValue) + { + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Directives_Args___InputValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && Type.Equals(other.Type) && ((DefaultValue is null && other.DefaultValue is null) || DefaultValue != null && DefaultValue.Equals(other.DefaultValue)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Directives_Args___InputValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + if (DefaultValue != null) + { + hash ^= 397 * DefaultValue.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Args___InputValue : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Args___InputValue + { + public IntrospectionQuery___schema_Types_Fields_Args___InputValue(global::System.String name, global::System.String? description, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type type, global::System.String? defaultValue) + { + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Args___InputValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && Type.Equals(other.Type) && ((DefaultValue is null && other.DefaultValue is null) || DefaultValue != null && DefaultValue.Equals(other.DefaultValue)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Args___InputValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + if (DefaultValue != null) + { + hash ^= 397 * DefaultValue.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Type___Type + { + public IntrospectionQuery___schema_Types_Fields_Type___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_InputFields_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_InputFields_Type___Type + { + public IntrospectionQuery___schema_Types_InputFields_Type___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_InputFields_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_InputFields_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces_OfType___Type + { + public IntrospectionQuery___schema_Types_Interfaces_OfType___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_PossibleTypes_OfType___Type + { + public IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Directives_Args_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Directives_Args_Type___Type + { + public IntrospectionQuery___schema_Directives_Args_Type___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Directives_Args_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Directives_Args_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Args_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Args_Type___Type + { + public IntrospectionQuery___schema_Types_Fields_Args_Type___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Args_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Args_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Type_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Type_OfType___Type + { + public IntrospectionQuery___schema_Types_Fields_Type_OfType___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Type_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Type_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_InputFields_Type_OfType___Type + { + public IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type + { + public IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type + { + public IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind kind, global::System.String? name) + { + Kind = kind; + Name = name; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQueryResult + { + /// + /// Access the current type schema of this server. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema __schema + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema + { + /// + /// The type that query operations will be rooted at. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_QueryType QueryType + { + get; + } + + /// + /// If this server supports mutation, the type that mutation operations will be rooted at. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_MutationType? MutationType + { + get; + } + + /// + /// If this server support subscription, the type that subscription operations will be rooted at. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_SubscriptionType? SubscriptionType + { + get; + } + + /// + /// A list of all types supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Types + { + get; + } + + /// + /// A list of all directives supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Directives + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema___Schema : IIntrospectionQuery___schema + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_QueryType + { + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_QueryType___Type : IIntrospectionQuery___schema_QueryType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_MutationType + { + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_MutationType___Type : IIntrospectionQuery___schema_MutationType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_SubscriptionType + { + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_SubscriptionType___Type : IIntrospectionQuery___schema_SubscriptionType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IFullType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Fields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? InputFields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Interfaces + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? EnumValues + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? PossibleTypes + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types : IFullType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types___Type : IIntrospectionQuery___schema_Types + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + /// + /// In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::System.Boolean OnOperation + { + get; + } + + public global::System.Boolean OnFragment + { + get; + } + + public global::System.Boolean OnField + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + /// + /// In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives___Directive : IIntrospectionQuery___schema_Directives + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Fields_Type Type + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields___Field : IIntrospectionQuery___schema_Types_Fields + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IInputValue + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields : IInputValue + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields___InputValue : IIntrospectionQuery___schema_Types_InputFields + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface ITypeRef + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces___Type : IIntrospectionQuery___schema_Types_Interfaces + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_EnumValues + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_EnumValues___EnumValue : IIntrospectionQuery___schema_Types_EnumValues + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes___Type : IIntrospectionQuery___schema_Types_PossibleTypes + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args : IInputValue + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args___InputValue : IIntrospectionQuery___schema_Directives_Args + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args : IInputValue + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args___InputValue : IIntrospectionQuery___schema_Types_Fields_Args + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type___Type : IIntrospectionQuery___schema_Types_Fields_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type___Type : IIntrospectionQuery___schema_Types_InputFields_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType___Type : IIntrospectionQuery___schema_Types_Interfaces_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes_OfType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes_OfType___Type : IIntrospectionQuery___schema_Types_PossibleTypes_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args_Type___Type : IIntrospectionQuery___schema_Directives_Args_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args_Type___Type : IIntrospectionQuery___schema_Types_Fields_Args_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type_OfType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type_OfType___Type : IIntrospectionQuery___schema_Types_Fields_Type_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type_OfType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type_OfType___Type : IIntrospectionQuery___schema_Types_InputFields_Type_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type : IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType + { + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type : IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.EnumGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public enum __TypeKind + { + /// + /// Indicates this type is a scalar. + /// + Scalar, + /// + /// Indicates this type is an object. `fields` and `interfaces` are valid fields. + /// + Object, + /// + /// Indicates this type is an interface. `fields` and `possibleTypes` are valid fields. + /// + Interface, + /// + /// Indicates this type is a union. `possibleTypes` is a valid field. + /// + Union, + /// + /// Indicates this type is an enum. `enumValues` is a valid field. + /// + Enum, + /// + /// Indicates this type is an input object. `inputFields` is a valid field. + /// + InputObject, + /// + /// Indicates this type is a list. `ofType` is a valid field. + /// + List, + /// + /// Indicates this type is a non-null. `ofType` is a valid field. + /// + NonNull + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.EnumParserGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class __TypeKindSerializer : global::StrawberryShake.Serialization.IInputValueFormatter, global::StrawberryShake.Serialization.ILeafValueParser + { + public global::System.String TypeName => "__TypeKind"; + public __TypeKind Parse(global::System.String serializedValue) + { + return serializedValue switch + { + "SCALAR" => __TypeKind.Scalar, "OBJECT" => __TypeKind.Object, "INTERFACE" => __TypeKind.Interface, "UNION" => __TypeKind.Union, "ENUM" => __TypeKind.Enum, "INPUT_OBJECT" => __TypeKind.InputObject, "LIST" => __TypeKind.List, "NON_NULL" => __TypeKind.NonNull, _ => throw new global::StrawberryShake.GraphQLClientException()} + + ; + } + + public global::System.Object Format(global::System.Object? runtimeValue) + { + return runtimeValue switch + { + __TypeKind.Scalar => "SCALAR", __TypeKind.Object => "OBJECT", __TypeKind.Interface => "INTERFACE", __TypeKind.Union => "UNION", __TypeKind.Enum => "ENUM", __TypeKind.InputObject => "INPUT_OBJECT", __TypeKind.List => "LIST", __TypeKind.NonNull => "NON_NULL", _ => throw new global::StrawberryShake.GraphQLClientException()} + + ; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.OperationDocumentGenerator + /// + /// Represents the operation service of the IntrospectionQuery GraphQL operation + /// + /// query IntrospectionQuery { + /// __schema { + /// __typename + /// queryType { + /// __typename + /// name + /// } + /// mutationType { + /// __typename + /// name + /// } + /// subscriptionType { + /// __typename + /// name + /// } + /// types { + /// __typename + /// ... FullType + /// } + /// directives { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// onOperation + /// onFragment + /// onField + /// } + /// } + /// } + /// + /// fragment FullType on __Type { + /// kind + /// name + /// description + /// fields(includeDeprecated: true) { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// type { + /// __typename + /// ... TypeRef + /// } + /// isDeprecated + /// deprecationReason + /// } + /// inputFields { + /// __typename + /// ... InputValue + /// } + /// interfaces { + /// __typename + /// ... TypeRef + /// } + /// enumValues(includeDeprecated: true) { + /// __typename + /// name + /// description + /// isDeprecated + /// deprecationReason + /// } + /// possibleTypes { + /// __typename + /// ... TypeRef + /// } + /// } + /// + /// fragment InputValue on __InputValue { + /// name + /// description + /// type { + /// __typename + /// ... TypeRef + /// } + /// defaultValue + /// } + /// + /// fragment TypeRef on __Type { + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryQueryDocument : global::StrawberryShake.IDocument + { + private IntrospectionQueryQueryDocument() + { + } + + public static IntrospectionQueryQueryDocument Instance + { + get; + } + + = new IntrospectionQueryQueryDocument(); + public global::StrawberryShake.OperationKind Kind => global::StrawberryShake.OperationKind.Query; + public global::System.ReadOnlySpan Body => new global::System.Byte[]{0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7d, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x69, 0x73, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x7d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x7d, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7b, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d}; + public global::StrawberryShake.DocumentHash Hash + { + get; + } + + = new global::StrawberryShake.DocumentHash("sha1Hash", "5902e9f9fd92bc2e9785f0821db6ff925e660fde"); + public override global::System.String ToString() + { +#if NETSTANDARD2_0 + return global::System.Text.Encoding.UTF8.GetString(Body.ToArray()); +#else + return global::System.Text.Encoding.UTF8.GetString(Body); +#endif + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.OperationServiceGenerator + /// + /// Represents the operation service of the IntrospectionQuery GraphQL operation + /// + /// query IntrospectionQuery { + /// __schema { + /// __typename + /// queryType { + /// __typename + /// name + /// } + /// mutationType { + /// __typename + /// name + /// } + /// subscriptionType { + /// __typename + /// name + /// } + /// types { + /// __typename + /// ... FullType + /// } + /// directives { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// onOperation + /// onFragment + /// onField + /// } + /// } + /// } + /// + /// fragment FullType on __Type { + /// kind + /// name + /// description + /// fields(includeDeprecated: true) { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// type { + /// __typename + /// ... TypeRef + /// } + /// isDeprecated + /// deprecationReason + /// } + /// inputFields { + /// __typename + /// ... InputValue + /// } + /// interfaces { + /// __typename + /// ... TypeRef + /// } + /// enumValues(includeDeprecated: true) { + /// __typename + /// name + /// description + /// isDeprecated + /// deprecationReason + /// } + /// possibleTypes { + /// __typename + /// ... TypeRef + /// } + /// } + /// + /// fragment InputValue on __InputValue { + /// name + /// description + /// type { + /// __typename + /// ... TypeRef + /// } + /// defaultValue + /// } + /// + /// fragment TypeRef on __Type { + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryQuery : global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQueryQuery + { + private readonly global::StrawberryShake.IOperationExecutor _operationExecutor; + public IntrospectionQueryQuery(global::StrawberryShake.IOperationExecutor operationExecutor) + { + _operationExecutor = operationExecutor ?? throw new global::System.ArgumentNullException(nameof(operationExecutor)); + } + + global::System.Type global::StrawberryShake.IOperationRequestFactory.ResultType => typeof(IIntrospectionQueryResult); + public async global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Threading.CancellationToken cancellationToken = default) + { + var request = CreateRequest(); + return await _operationExecutor.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); + } + + public global::System.IObservable> Watch(global::StrawberryShake.ExecutionStrategy? strategy = null) + { + var request = CreateRequest(); + return _operationExecutor.Watch(request, strategy); + } + + private global::StrawberryShake.OperationRequest CreateRequest() + { + return CreateRequest(null); + } + + private global::StrawberryShake.OperationRequest CreateRequest(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return new global::StrawberryShake.OperationRequest(id: IntrospectionQueryQueryDocument.Instance.Hash.Value, name: "IntrospectionQuery", document: IntrospectionQueryQueryDocument.Instance, strategy: global::StrawberryShake.RequestStrategy.Default); + } + + global::StrawberryShake.OperationRequest global::StrawberryShake.IOperationRequestFactory.Create(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return CreateRequest(); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.OperationServiceInterfaceGenerator + /// + /// Represents the operation service of the IntrospectionQuery GraphQL operation + /// + /// query IntrospectionQuery { + /// __schema { + /// __typename + /// queryType { + /// __typename + /// name + /// } + /// mutationType { + /// __typename + /// name + /// } + /// subscriptionType { + /// __typename + /// name + /// } + /// types { + /// __typename + /// ... FullType + /// } + /// directives { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// onOperation + /// onFragment + /// onField + /// } + /// } + /// } + /// + /// fragment FullType on __Type { + /// kind + /// name + /// description + /// fields(includeDeprecated: true) { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// type { + /// __typename + /// ... TypeRef + /// } + /// isDeprecated + /// deprecationReason + /// } + /// inputFields { + /// __typename + /// ... InputValue + /// } + /// interfaces { + /// __typename + /// ... TypeRef + /// } + /// enumValues(includeDeprecated: true) { + /// __typename + /// name + /// description + /// isDeprecated + /// deprecationReason + /// } + /// possibleTypes { + /// __typename + /// ... TypeRef + /// } + /// } + /// + /// fragment InputValue on __InputValue { + /// name + /// description + /// type { + /// __typename + /// ... TypeRef + /// } + /// defaultValue + /// } + /// + /// fragment TypeRef on __Type { + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQueryQuery : global::StrawberryShake.IOperationRequestFactory + { + global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Threading.CancellationToken cancellationToken = default); + global::System.IObservable> Watch(global::StrawberryShake.ExecutionStrategy? strategy = null); + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ClientGenerator + /// + /// Represents the StarWarsIntrospectionClient GraphQL client + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class StarWarsIntrospectionClient : global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IStarWarsIntrospectionClient + { + private readonly global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQueryQuery _introspectionQuery; + public StarWarsIntrospectionClient(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQueryQuery introspectionQuery) + { + _introspectionQuery = introspectionQuery ?? throw new global::System.ArgumentNullException(nameof(introspectionQuery)); + } + + public static global::System.String ClientName => "StarWarsIntrospectionClient"; + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQueryQuery IntrospectionQuery => _introspectionQuery; + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ClientInterfaceGenerator + /// + /// Represents the StarWarsIntrospectionClient GraphQL client + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IStarWarsIntrospectionClient + { + global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQueryQuery IntrospectionQuery + { + get; + } + } +} + +namespace StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State +{ + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultDataFactoryGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryResultFactory : global::StrawberryShake.IOperationResultDataFactory + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + public IntrospectionQueryResultFactory(global::StrawberryShake.IEntityStore entityStore) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + } + + global::System.Type global::StrawberryShake.IOperationResultDataFactory.ResultType => typeof(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQueryResult); + public IntrospectionQueryResult Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot = null) + { + if (snapshot is null) + { + snapshot = _entityStore.CurrentSnapshot; + } + + if (dataInfo is IntrospectionQueryResultInfo info) + { + return new IntrospectionQueryResult(MapNonNullableIIntrospectionQuery___schema(info.__schema, snapshot)); + } + + throw new global::System.ArgumentException("IntrospectionQueryResultInfo expected."); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema MapNonNullableIIntrospectionQuery___schema(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__SchemaData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema returnValue = default !; + if (data.__typename.Equals("__Schema", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema___Schema(MapNonNullableIIntrospectionQuery___schema_QueryType(data.QueryType ?? throw new global::System.ArgumentNullException(), snapshot), MapIIntrospectionQuery___schema_MutationType(data.MutationType, snapshot), MapIIntrospectionQuery___schema_SubscriptionType(data.SubscriptionType, snapshot), MapNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(data.Types ?? throw new global::System.ArgumentNullException(), snapshot), MapNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(data.Directives ?? throw new global::System.ArgumentNullException(), snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_QueryType MapNonNullableIIntrospectionQuery___schema_QueryType(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_QueryType returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_QueryType___Type(data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_MutationType? MapIIntrospectionQuery___schema_MutationType(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_MutationType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_MutationType___Type(data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_SubscriptionType? MapIIntrospectionQuery___schema_SubscriptionType(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_SubscriptionType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_SubscriptionType___Type(data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData child in list) + { + __Types.Add(MapNonNullableIIntrospectionQuery___schema_Types(child, snapshot)); + } + + return __Types; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types MapNonNullableIIntrospectionQuery___schema_Types(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, data.Description, MapIIntrospectionQuery___schema_Types_FieldsNonNullableArray(data.Fields, snapshot), MapIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(data.InputFields, snapshot), MapIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(data.Interfaces, snapshot), MapIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(data.EnumValues, snapshot), MapIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(data.PossibleTypes, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_FieldsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __Fields = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__FieldData child in list) + { + __Fields.Add(MapNonNullableIIntrospectionQuery___schema_Types_Fields(child, snapshot)); + } + + return __Fields; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Fields MapNonNullableIIntrospectionQuery___schema_Types_Fields(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__FieldData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Fields returnValue = default !; + if (data.__typename.Equals("__Field", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Fields___Field(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(data.Args ?? throw new global::System.ArgumentNullException(), snapshot), MapNonNullableIIntrospectionQuery___schema_Types_Fields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.IsDeprecated ?? throw new global::System.ArgumentNullException(), data.DeprecationReason); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData child in list) + { + __InputValues.Add(MapNonNullableIIntrospectionQuery___schema_Types_Fields_Args(child, snapshot)); + } + + return __InputValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Fields_Args MapNonNullableIIntrospectionQuery___schema_Types_Fields_Args(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Fields_Args returnValue = default !; + if (data.__typename.Equals("__InputValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Fields_Args___InputValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.DefaultValue); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields_Type MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_InputFields_Type returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_InputFields_Type___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType? MapIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_Types_Interfaces_OfType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces_OfType___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Fields_Type MapNonNullableIIntrospectionQuery___schema_Types_Fields_Type(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Fields_Type returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Fields_Type___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData child in list) + { + __InputValues.Add(MapNonNullableIIntrospectionQuery___schema_Types_InputFields(child, snapshot)); + } + + return __InputValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_InputFields MapNonNullableIIntrospectionQuery___schema_Types_InputFields(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_InputFields returnValue = default !; + if (data.__typename.Equals("__InputValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_InputFields___InputValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.DefaultValue); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData child in list) + { + __Types.Add(MapNonNullableIIntrospectionQuery___schema_Types_Interfaces(child, snapshot)); + } + + return __Types; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_Interfaces MapNonNullableIIntrospectionQuery___schema_Types_Interfaces(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Interfaces returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __EnumValues = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__EnumValueData child in list) + { + __EnumValues.Add(MapNonNullableIIntrospectionQuery___schema_Types_EnumValues(child, snapshot)); + } + + return __EnumValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_EnumValues MapNonNullableIIntrospectionQuery___schema_Types_EnumValues(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__EnumValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_EnumValues returnValue = default !; + if (data.__typename.Equals("__EnumValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_EnumValues___EnumValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, data.IsDeprecated ?? throw new global::System.ArgumentNullException(), data.DeprecationReason); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData child in list) + { + __Types.Add(MapNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(child, snapshot)); + } + + return __Types; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Types_PossibleTypes MapNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_PossibleTypes returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_PossibleTypes___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __Directives = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__DirectiveData child in list) + { + __Directives.Add(MapNonNullableIIntrospectionQuery___schema_Directives(child, snapshot)); + } + + return __Directives; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Directives MapNonNullableIIntrospectionQuery___schema_Directives(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__DirectiveData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Directives returnValue = default !; + if (data.__typename.Equals("__Directive", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Directives___Directive(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(data.Args ?? throw new global::System.ArgumentNullException(), snapshot), data.OnOperation ?? throw new global::System.ArgumentNullException(), data.OnFragment ?? throw new global::System.ArgumentNullException(), data.OnField ?? throw new global::System.ArgumentNullException()); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData child in list) + { + __InputValues.Add(MapNonNullableIIntrospectionQuery___schema_Directives_Args(child, snapshot)); + } + + return __InputValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.IIntrospectionQuery___schema_Directives_Args MapNonNullableIIntrospectionQuery___schema_Directives_Args(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Directives_Args returnValue = default !; + if (data.__typename.Equals("__InputValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Directives_Args___InputValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.DefaultValue); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + global::System.Object global::StrawberryShake.IOperationResultDataFactory.Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot) + { + return Create(dataInfo, snapshot); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInfoGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryResultInfo : global::StrawberryShake.IOperationResultDataInfo + { + private readonly global::System.Collections.Generic.IReadOnlyCollection _entityIds; + private readonly global::System.UInt64 _version; + public IntrospectionQueryResultInfo(global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__SchemaData __schema, global::System.Collections.Generic.IReadOnlyCollection entityIds, global::System.UInt64 version) + { + this.__schema = __schema; + _entityIds = entityIds ?? throw new global::System.ArgumentNullException(nameof(entityIds)); + _version = version; + } + + /// + /// Access the current type schema of this server. + /// + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__SchemaData __schema + { + get; + } + + public global::System.Collections.Generic.IReadOnlyCollection EntityIds => _entityIds; + public global::System.UInt64 Version => _version; + public global::StrawberryShake.IOperationResultDataInfo WithVersion(global::System.UInt64 version) + { + return new IntrospectionQueryResultInfo(__schema, _entityIds, version); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.JsonResultBuilderGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryBuilder : global::StrawberryShake.IOperationResultBuilder + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + private readonly global::StrawberryShake.IEntityIdSerializer _idSerializer; + private readonly global::StrawberryShake.IOperationResultDataFactory _resultDataFactory; + private readonly global::StrawberryShake.Serialization.ILeafValueParser ___TypeKindParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _stringParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _booleanParser; + public IntrospectionQueryBuilder(global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer idSerializer, global::StrawberryShake.IOperationResultDataFactory resultDataFactory, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + _idSerializer = idSerializer ?? throw new global::System.ArgumentNullException(nameof(idSerializer)); + _resultDataFactory = resultDataFactory ?? throw new global::System.ArgumentNullException(nameof(resultDataFactory)); + ___TypeKindParser = serializerResolver.GetLeafValueParser("__TypeKind") ?? throw new global::System.ArgumentException("No serializer for type `__TypeKind` found."); + _stringParser = serializerResolver.GetLeafValueParser("String") ?? throw new global::System.ArgumentException("No serializer for type `String` found."); + _booleanParser = serializerResolver.GetLeafValueParser("Boolean") ?? throw new global::System.ArgumentException("No serializer for type `Boolean` found."); + } + + public global::StrawberryShake.IOperationResult Build(global::StrawberryShake.Response response) + { + (IIntrospectionQueryResult Result, IntrospectionQueryResultInfo Info)? data = null; + global::System.Collections.Generic.IReadOnlyList? errors = null; + if (response.Exception is null) + { + try + { + if (response.Body != null) + { + if (response.Body.RootElement.TryGetProperty("data", out global::System.Text.Json.JsonElement dataElement) && dataElement.ValueKind == global::System.Text.Json.JsonValueKind.Object) + { + data = BuildData(dataElement); + } + + if (response.Body.RootElement.TryGetProperty("errors", out global::System.Text.Json.JsonElement errorsElement)) + { + errors = global::StrawberryShake.Json.JsonErrorParser.ParseErrors(errorsElement); + } + } + } + catch (global::System.Exception ex) + { + errors = new global::StrawberryShake.IClientError[]{new global::StrawberryShake.ClientError(ex.Message, exception: ex, extensions: new global::System.Collections.Generic.Dictionary{{"body", response.Body?.RootElement.ToString()}})}; + } + } + else + { + errors = new global::StrawberryShake.IClientError[]{new global::StrawberryShake.ClientError(response.Exception.Message, exception: response.Exception, extensions: new global::System.Collections.Generic.Dictionary{{"body", response.Body?.RootElement.ToString()}})}; + } + + return new global::StrawberryShake.OperationResult(data?.Result, data?.Info, _resultDataFactory, errors); + } + + private (IIntrospectionQueryResult, IntrospectionQueryResultInfo) BuildData(global::System.Text.Json.JsonElement obj) + { + var entityIds = new global::System.Collections.Generic.HashSet(); + global::StrawberryShake.IEntityStoreSnapshot snapshot = default !; + _entityStore.Update(session => + { + snapshot = session.CurrentSnapshot; + }); + var resultInfo = new IntrospectionQueryResultInfo(DeserializeNonNullableIIntrospectionQuery___schema(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "__schema")), entityIds, snapshot.Version); + return (_resultDataFactory.Create(resultInfo), resultInfo); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__SchemaData DeserializeNonNullableIIntrospectionQuery___schema(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Schema", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__SchemaData(typename, queryType: DeserializeNonNullableIIntrospectionQuery___schema_QueryType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "queryType")), mutationType: DeserializeIIntrospectionQuery___schema_MutationType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "mutationType")), subscriptionType: DeserializeIIntrospectionQuery___schema_SubscriptionType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "subscriptionType")), types: DeserializeNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "types")), directives: DeserializeNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "directives"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_QueryType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.String? DeserializeString(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? DeserializeIIntrospectionQuery___schema_MutationType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? DeserializeIIntrospectionQuery___schema_SubscriptionType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Types.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types(child)); + } + + return __Types; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), fields: DeserializeIIntrospectionQuery___schema_Types_FieldsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "fields")), inputFields: DeserializeIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "inputFields")), interfaces: DeserializeIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "interfaces")), enumValues: DeserializeIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "enumValues")), possibleTypes: DeserializeIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "possibleTypes"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind DeserializeNonNullable__TypeKind(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return ___TypeKindParser.Parse(obj.Value.GetString()!); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_FieldsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __Fields = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Fields.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields(child)); + } + + return __Fields; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__FieldData DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Field", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__FieldData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), args: DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "args")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), isDeprecated: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "isDeprecated")), deprecationReason: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "deprecationReason"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.String DeserializeNonNullableString(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __InputValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Args(child)); + } + + return __InputValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Args(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__InputValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), defaultValue: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "defaultValue"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Type(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Boolean DeserializeNonNullableBoolean(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _booleanParser.Parse(obj.Value.GetBoolean()!); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __InputValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields(child)); + } + + return __InputValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__InputValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), defaultValue: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "defaultValue"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Types.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_Interfaces(child)); + } + + return __Types; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_Interfaces(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __EnumValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __EnumValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_EnumValues(child)); + } + + return __EnumValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__EnumValueData DeserializeNonNullableIIntrospectionQuery___schema_Types_EnumValues(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__EnumValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__EnumValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), isDeprecated: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "isDeprecated")), deprecationReason: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "deprecationReason"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Types.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(child)); + } + + return __Types; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __Directives = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Directives.Add(DeserializeNonNullableIIntrospectionQuery___schema_Directives(child)); + } + + return __Directives; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__DirectiveData DeserializeNonNullableIIntrospectionQuery___schema_Directives(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Directive", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__DirectiveData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), args: DeserializeNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "args")), onOperation: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "onOperation")), onFragment: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "onFragment")), onField: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "onField"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __InputValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Directives_Args(child)); + } + + return __InputValues; + } + + private global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData DeserializeNonNullableIIntrospectionQuery___schema_Directives_Args(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__InputValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__InputValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), defaultValue: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "defaultValue"))); + } + + throw new global::System.NotSupportedException(); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __SchemaData + { + public __SchemaData(global::System.String __typename, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? queryType = default !, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? mutationType = default !, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? subscriptionType = default !, global::System.Collections.Generic.IReadOnlyList? types = default !, global::System.Collections.Generic.IReadOnlyList? directives = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + QueryType = queryType; + MutationType = mutationType; + SubscriptionType = subscriptionType; + Types = types; + Directives = directives; + } + + public global::System.String __typename + { + get; + } + + ///The type that query operations will be rooted at. + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? QueryType + { + get; + } + + ///If this server supports mutation, the type that mutation operations will be rooted at. + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? MutationType + { + get; + } + + ///If this server support subscription, the type that subscription operations will be rooted at. + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? SubscriptionType + { + get; + } + + ///A list of all types supported by this server. + public global::System.Collections.Generic.IReadOnlyList? Types + { + get; + } + + ///A list of all directives supported by this server. + public global::System.Collections.Generic.IReadOnlyList? Directives + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __TypeData + { + public __TypeData(global::System.String __typename, global::System.String? name = default !, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind? kind = default !, global::System.String? description = default !, global::System.Collections.Generic.IReadOnlyList? fields = default !, global::System.Collections.Generic.IReadOnlyList? inputFields = default !, global::System.Collections.Generic.IReadOnlyList? interfaces = default !, global::System.Collections.Generic.IReadOnlyList? enumValues = default !, global::System.Collections.Generic.IReadOnlyList? possibleTypes = default !, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? ofType = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Kind = kind; + Description = description; + Fields = fields; + InputFields = inputFields; + Interfaces = interfaces; + EnumValues = enumValues; + PossibleTypes = possibleTypes; + OfType = ofType; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.__TypeKind? Kind + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Fields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? InputFields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Interfaces + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? EnumValues + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? PossibleTypes + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __DirectiveData + { + public __DirectiveData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::System.Collections.Generic.IReadOnlyList? args = default !, global::System.Boolean? onOperation = default !, global::System.Boolean? onFragment = default !, global::System.Boolean? onField = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + Args = args; + OnOperation = onOperation; + OnFragment = onFragment; + OnField = onField; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Args + { + get; + } + + public global::System.Boolean? OnOperation + { + get; + } + + public global::System.Boolean? OnFragment + { + get; + } + + public global::System.Boolean? OnField + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __FieldData + { + public __FieldData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::System.Collections.Generic.IReadOnlyList? args = default !, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? type = default !, global::System.Boolean? isDeprecated = default !, global::System.String? deprecationReason = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + Args = args; + Type = type; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Args + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? Type + { + get; + } + + public global::System.Boolean? IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __InputValueData + { + public __InputValueData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? type = default !, global::System.String? defaultValue = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection.State.__TypeData? Type + { + get; + } + + ///A GraphQL-formatted string representing the default value for this input value. + public global::System.String? DefaultValue + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __EnumValueData + { + public __EnumValueData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::System.Boolean? isDeprecated = default !, global::System.String? deprecationReason = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Boolean? IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.EntityIdFactoryGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class StarWarsIntrospectionClientEntityIdFactory : global::StrawberryShake.IEntityIdSerializer + { + private static readonly global::System.Text.Json.JsonWriterOptions _options = new global::System.Text.Json.JsonWriterOptions() + {Indented = false}; + public global::StrawberryShake.EntityId Parse(global::System.Text.Json.JsonElement obj) + { + global::System.String __typename = obj.GetProperty("__typename").GetString()!; + return __typename switch + { + _ => throw new global::System.NotSupportedException()} + + ; + } + + public global::System.String Format(global::StrawberryShake.EntityId entityId) + { + return entityId.Name switch + { + _ => throw new global::System.NotSupportedException()} + + ; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.StoreAccessorGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class StarWarsIntrospectionClientStoreAccessor : global::StrawberryShake.StoreAccessor + { + public StarWarsIntrospectionClientStoreAccessor(global::StrawberryShake.IOperationStore operationStore, global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer entityIdSerializer, global::System.Collections.Generic.IEnumerable requestFactories, global::System.Collections.Generic.IEnumerable resultDataFactories): base(operationStore, entityStore, entityIdSerializer, requestFactories, resultDataFactories) + { + } + } +} + + diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/StarWarsIntrospectionTest.cs b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/StarWarsIntrospectionTest.cs new file mode 100644 index 00000000000..840110d00e9 --- /dev/null +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/StarWarsIntrospectionTest.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using HotChocolate.AspNetCore.Utilities; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.DependencyInjection; +using Snapshooter.Xunit; +using StrawberryShake.Transport.WebSockets; +using Xunit; + +namespace StrawberryShake.CodeGeneration.CSharp.Integration.StarWarsIntrospection +{ + public class StarWarsIntrospectionTest : ServerTestBase + { + public StarWarsIntrospectionTest(TestServerFactory serverFactory) : base(serverFactory) + { + } + + [Fact] + public async Task Execute_StarWarsIntrospection_Test() + { + // arrange + CancellationToken ct = new CancellationTokenSource(20_000).Token; + using IWebHost host = TestServerHelper.CreateServer( + _ => { }, + out var port); + var serviceCollection = new ServiceCollection(); + serviceCollection.AddHttpClient( + StarWarsIntrospectionClient.ClientName, + c => c.BaseAddress = new Uri("http://localhost:" + port + "/graphql")); + serviceCollection.AddWebSocketClient( + StarWarsIntrospectionClient.ClientName, + c => c.Uri = new Uri("ws://localhost:" + port + "/graphql")); + serviceCollection.AddStarWarsIntrospectionClient(); + IServiceProvider services = serviceCollection.BuildServiceProvider(); + StarWarsIntrospectionClient client = services.GetRequiredService(); + + // act + IOperationResult result = + await client.IntrospectionQuery.ExecuteAsync(ct); + + + // assert + result.MatchSnapshot(); + } + } +} diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/TestGeneration.cs b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/TestGeneration.cs index 47fb30aaf5f..421f7b6c15b 100644 --- a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/TestGeneration.cs +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/TestGeneration.cs @@ -1,3 +1,4 @@ +using ChilliCream.Testing; using StrawberryShake.Tools.Configuration; using Xunit; using static StrawberryShake.CodeGeneration.CSharp.GeneratorTestHelper; @@ -169,5 +170,11 @@ type Quox2 { union Bar = Baz | Quox | Baz2 | Quox2 ", "extend schema @key(fields: \"id\")"); + + [Fact] + public void StarWarsIntrospection() => + AssertStarWarsResult( + CreateIntegrationTest(), + FileResource.Open("IntrospectionQuery.graphql")); } } diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/__snapshots__/StarWarsIntrospectionTest.Execute_StarWarsIntrospection_Test.snap b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/__snapshots__/StarWarsIntrospectionTest.Execute_StarWarsIntrospection_Test.snap new file mode 100644 index 00000000000..09bb0cb9da7 --- /dev/null +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/Integration/__snapshots__/StarWarsIntrospectionTest.Execute_StarWarsIntrospection_Test.snap @@ -0,0 +1,6145 @@ +{ + "Data": { + "__schema": { + "QueryType": { + "Name": "Query" + }, + "MutationType": { + "Name": "Mutation" + }, + "SubscriptionType": { + "Name": "Subscription" + }, + "Types": [ + { + "Kind": "Object", + "Name": "__Directive", + "Description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", + "Fields": [ + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "isRepeatable", + "Description": null, + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "locations", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "__DirectiveLocation" + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "args", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "__InputValue" + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "onOperation", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "IsDeprecated": true, + "DeprecationReason": "Use `locations`." + }, + { + "Name": "onFragment", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "IsDeprecated": true, + "DeprecationReason": "Use `locations`." + }, + { + "Name": "onField", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "IsDeprecated": true, + "DeprecationReason": "Use `locations`." + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Enum", + "Name": "__DirectiveLocation", + "Description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "Name": "QUERY", + "Description": "Location adjacent to a query operation.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "MUTATION", + "Description": "Location adjacent to a mutation operation.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "SUBSCRIPTION", + "Description": "Location adjacent to a subscription operation.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "FIELD", + "Description": "Location adjacent to a field.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "FRAGMENT_DEFINITION", + "Description": "Location adjacent to a fragment definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "FRAGMENT_SPREAD", + "Description": "Location adjacent to a fragment spread.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "INLINE_FRAGMENT", + "Description": "Location adjacent to an inline fragment.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "VARIABLE_DEFINITION", + "Description": "Location adjacent to a variable definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "SCHEMA", + "Description": "Location adjacent to a schema definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "SCALAR", + "Description": "Location adjacent to a scalar definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "OBJECT", + "Description": "Location adjacent to an object type definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "FIELD_DEFINITION", + "Description": "Location adjacent to a field definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "ARGUMENT_DEFINITION", + "Description": "Location adjacent to an argument definition", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "INTERFACE", + "Description": "Location adjacent to an interface definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "UNION", + "Description": "Location adjacent to a union definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "ENUM", + "Description": "Location adjacent to an enum definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "ENUM_VALUE", + "Description": "Location adjacent to an enum value definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "INPUT_OBJECT", + "Description": "Location adjacent to an input object type definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "INPUT_FIELD_DEFINITION", + "Description": "Location adjacent to an input object field definition.", + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "__EnumValue", + "Description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", + "Fields": [ + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "NonNull", + "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": "__Field", + "Description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", + "Fields": [ + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "NonNull", + "Name": null, + "OfType": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "__InputValue" + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "type", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "__Type", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "isDeprecated", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", + "Fields": [ + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "__Type", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "defaultValue", + "Description": "A GraphQL-formatted string representing the default value for this input value.", + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "__Schema", + "Description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", + "Fields": [ + { + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "types", + "Description": "A list of all types supported by this server.", + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "__Type" + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "queryType", + "Description": "The type that query operations will be rooted at.", + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "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 + }, + { + "Name": "directives", + "Description": "A list of all directives supported by this server.", + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "__Directive" + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "__Type", + "Description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", + "Fields": [ + { + "Name": "kind", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "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": "NonNull", + "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": "NonNull", + "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": "NonNull", + "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": "NonNull", + "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": "NonNull", + "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 + }, + { + "Name": "specifiedByURL", + "Description": "`specifiedByURL` may return a String (in the form of a URL) for custom scalars, otherwise it will return `null`.", + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "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": "Query", + "Description": null, + "Fields": [ + { + "Name": "hero", + "Description": null, + "Args": [ + { + "Name": "episode", + "Description": null, + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + }, + "DefaultValue": "NEW_HOPE" + } + ], + "Type": { + "Kind": "Interface", + "Name": "Character", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "heroes", + "Description": null, + "Args": [ + { + "Name": "episodes", + "Description": null, + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + } + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Interface", + "Name": "Character", + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "character", + "Description": null, + "Args": [ + { + "Name": "characterIds", + "Description": null, + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + } + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Interface", + "Name": "Character" + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "search", + "Description": null, + "Args": [ + { + "Name": "text", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "Union", + "Name": "SearchResult", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "human", + "Description": null, + "Args": [ + { + "Name": "id", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Object", + "Name": "Human", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "droid", + "Description": null, + "Args": [ + { + "Name": "id", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Object", + "Name": "Droid", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "Mutation", + "Description": null, + "Fields": [ + { + "Name": "createReview", + "Description": null, + "Args": [ + { + "Name": "episode", + "Description": null, + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + }, + "DefaultValue": null + }, + { + "Name": "review", + "Description": null, + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "InputObject", + "Name": "ReviewInput", + "OfType": null + } + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "Review", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "Subscription", + "Description": null, + "Fields": [ + { + "Name": "onReview", + "Description": null, + "Args": [ + { + "Name": "episode", + "Description": null, + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "Review", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "Human", + "Description": null, + "Fields": [ + { + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "ID", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "appearsIn", + "Description": null, + "Args": [], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "friends", + "Description": null, + "Args": [ + { + "Name": "first", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "after", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "last", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "before", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Object", + "Name": "CharacterConnection", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "otherHuman", + "Description": null, + "Args": [], + "Type": { + "Kind": "Object", + "Name": "Human", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "height", + "Description": null, + "Args": [ + { + "Name": "unit", + "Description": null, + "Type": { + "Kind": "Enum", + "Name": "Unit", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Scalar", + "Name": "Float", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "homePlanet", + "Description": null, + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [ + { + "Kind": "Interface", + "Name": "Character", + "OfType": null + } + ], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "Droid", + "Description": null, + "Fields": [ + { + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "ID", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "appearsIn", + "Description": null, + "Args": [], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "friends", + "Description": null, + "Args": [ + { + "Name": "first", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "after", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "last", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "before", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Object", + "Name": "CharacterConnection", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "height", + "Description": null, + "Args": [ + { + "Name": "unit", + "Description": null, + "Type": { + "Kind": "Enum", + "Name": "Unit", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Scalar", + "Name": "Float", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "primaryFunction", + "Description": null, + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [ + { + "Kind": "Interface", + "Name": "Character", + "OfType": null + } + ], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Enum", + "Name": "Episode", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "Name": "NEW_HOPE", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "EMPIRE", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "JEDI", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null + }, + { + "Kind": "Scalar", + "Name": "String", + "Description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Scalar", + "Name": "Boolean", + "Description": "The `Boolean` scalar type represents `true` or `false`.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Scalar", + "Name": "Int", + "Description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Interface", + "Name": "Character", + "Description": null, + "Fields": [ + { + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "ID", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "friends", + "Description": null, + "Args": [ + { + "Name": "first", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "after", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "last", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "before", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Object", + "Name": "CharacterConnection", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "appearsIn", + "Description": null, + "Args": [], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "Enum", + "Name": "Episode", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "height", + "Description": null, + "Args": [ + { + "Name": "unit", + "Description": null, + "Type": { + "Kind": "Enum", + "Name": "Unit", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "Scalar", + "Name": "Float", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": [ + { + "Kind": "Object", + "Name": "Human", + "OfType": null + }, + { + "Kind": "Object", + "Name": "Droid", + "OfType": null + } + ] + }, + { + "Kind": "Union", + "Name": "SearchResult", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": [ + { + "Kind": "Object", + "Name": "Starship", + "OfType": null + }, + { + "Kind": "Object", + "Name": "Human", + "OfType": null + }, + { + "Kind": "Object", + "Name": "Droid", + "OfType": null + } + ] + }, + { + "Kind": "Object", + "Name": "Review", + "Description": null, + "Fields": [ + { + "Name": "stars", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "commentary", + "Description": null, + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "InputObject", + "Name": "ReviewInput", + "Description": null, + "Fields": null, + "InputFields": [ + { + "Name": "stars", + "Description": null, + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + } + }, + "DefaultValue": null + }, + { + "Name": "commentary", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Scalar", + "Name": "ID", + "Description": "The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "CharacterConnection", + "Description": "A connection to a list of items.", + "Fields": [ + { + "Name": "pageInfo", + "Description": "Information to aid in pagination.", + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "PageInfo", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "edges", + "Description": "A list of edges.", + "Args": [], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Object", + "Name": "CharacterEdge", + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "nodes", + "Description": "A flattened list of the nodes.", + "Args": [], + "Type": { + "Kind": "List", + "Name": null, + "OfType": { + "Kind": "Interface", + "Name": "Character", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Scalar", + "Name": "Float", + "Description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Enum", + "Name": "Unit", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "Name": "FOOT", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "METERS", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "Starship", + "Description": null, + "Fields": [ + { + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "ID", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "length", + "Description": null, + "Args": [ + { + "Name": "unit", + "Description": null, + "Type": { + "Kind": "Enum", + "Name": "Unit", + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Float", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "PageInfo", + "Description": "Information about pagination in a connection.", + "Fields": [ + { + "Name": "hasNextPage", + "Description": "Indicates whether more edges exist following the set defined by the clients arguments.", + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "hasPreviousPage", + "Description": "Indicates whether more edges exist prior the set defined by the clients arguments.", + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "startCursor", + "Description": "When paginating backwards, the cursor to continue.", + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "endCursor", + "Description": "When paginating forwards, the cursor to continue.", + "Args": [], + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + }, + { + "Kind": "Object", + "Name": "CharacterEdge", + "Description": "An edge in a connection.", + "Fields": [ + { + "Name": "cursor", + "Description": "A cursor for use in pagination.", + "Args": [], + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "Name": "node", + "Description": "The item at the end of the edge.", + "Args": [], + "Type": { + "Kind": "Interface", + "Name": "Character", + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null + } + ], + "Directives": [ + { + "Name": "skip", + "Description": "Directs the executor to skip this field or fragment when the `if` argument is true.", + "Args": [ + { + "Name": "if", + "Description": "Skipped when true.", + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": true, + "OnField": true + }, + { + "Name": "include", + "Description": "Directs the executor to include this field or fragment only when the `if` argument is true.", + "Args": [ + { + "Name": "if", + "Description": "Included when true.", + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": true, + "OnField": true + }, + { + "Name": "defer", + "Description": "The `@defer` directive may be provided for fragment spreads and inline fragments to inform the executor to delay the execution of the current fragment to indicate deprioritization of the current fragment. A query with `@defer` directive will cause the request to potentially return multiple responses, where non-deferred data is delivered in the initial response and data deferred is delivered in a subsequent response. `@include` and `@skip` take precedence over `@defer`.", + "Args": [ + { + "Name": "label", + "Description": "If this argument label has a value other than null, it will be passed on to the result of this defer directive. This label is intended to give client applications a way to identify to which fragment a deferred result belongs to.", + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "if", + "Description": "Deferred when true.", + "Type": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": true, + "OnField": false + }, + { + "Name": "stream", + "Description": "The `@stream` directive may be provided for a field of `List` type so that the backend can leverage technology such as asynchronous iterators to provide a partial list in the initial response, and additional list items in subsequent responses. `@include` and `@skip` take precedence over `@stream`.", + "Args": [ + { + "Name": "label", + "Description": "If this argument label has a value other than null, it will be passed on to the result of this stream directive. This label is intended to give client applications a way to identify to which fragment a streamed result belongs to.", + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + }, + { + "Name": "initialCount", + "Description": "The initial elements that shall be send down to the consumer.", + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Int", + "OfType": null + } + }, + "DefaultValue": null + }, + { + "Name": "if", + "Description": "Streamed when true.", + "Type": { + "Kind": "NonNull", + "Name": null, + "OfType": { + "Kind": "Scalar", + "Name": "Boolean", + "OfType": null + } + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": false, + "OnField": true + }, + { + "Name": "export", + "Description": null, + "Args": [ + { + "Name": "as", + "Description": null, + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": false, + "OnField": true + }, + { + "Name": "deprecated", + "Description": "The @deprecated directive is used within the type system definition language to indicate deprecated portions of a GraphQL service’s schema,such as deprecated fields on a type or deprecated enum values.", + "Args": [ + { + "Name": "reason", + "Description": "Deprecations include a reason for why it is deprecated, which is formatted using Markdown syntax (as specified by CommonMark).", + "Type": { + "Kind": "Scalar", + "Name": "String", + "OfType": null + }, + "DefaultValue": "\"No longer supported\"" + } + ], + "OnOperation": false, + "OnFragment": false, + "OnField": false + } + ] + } + }, + "DataInfo": { + "__schema": { + "__typename": "__Schema", + "QueryType": { + "__typename": "__Type", + "Name": "Query", + "Kind": null, + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "MutationType": { + "__typename": "__Type", + "Name": "Mutation", + "Kind": null, + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "SubscriptionType": { + "__typename": "__Type", + "Name": "Subscription", + "Kind": null, + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "Types": [ + { + "__typename": "__Type", + "Name": "__Directive", + "Kind": "Object", + "Description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", + "Fields": [ + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "isRepeatable", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "locations", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__DirectiveLocation", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "args", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__InputValue", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "onOperation", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": true, + "DeprecationReason": "Use `locations`." + }, + { + "__typename": "__Field", + "Name": "onFragment", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": true, + "DeprecationReason": "Use `locations`." + }, + { + "__typename": "__Field", + "Name": "onField", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": true, + "DeprecationReason": "Use `locations`." + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__DirectiveLocation", + "Kind": "Enum", + "Description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "__typename": "__EnumValue", + "Name": "QUERY", + "Description": "Location adjacent to a query operation.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "MUTATION", + "Description": "Location adjacent to a mutation operation.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "SUBSCRIPTION", + "Description": "Location adjacent to a subscription operation.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "FIELD", + "Description": "Location adjacent to a field.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "FRAGMENT_DEFINITION", + "Description": "Location adjacent to a fragment definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "FRAGMENT_SPREAD", + "Description": "Location adjacent to a fragment spread.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "INLINE_FRAGMENT", + "Description": "Location adjacent to an inline fragment.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "VARIABLE_DEFINITION", + "Description": "Location adjacent to a variable definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "SCHEMA", + "Description": "Location adjacent to a schema definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "SCALAR", + "Description": "Location adjacent to a scalar definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "OBJECT", + "Description": "Location adjacent to an object type definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "FIELD_DEFINITION", + "Description": "Location adjacent to a field definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "ARGUMENT_DEFINITION", + "Description": "Location adjacent to an argument definition", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "INTERFACE", + "Description": "Location adjacent to an interface definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "UNION", + "Description": "Location adjacent to a union definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "ENUM", + "Description": "Location adjacent to an enum definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "ENUM_VALUE", + "Description": "Location adjacent to an enum value definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "INPUT_OBJECT", + "Description": "Location adjacent to an input object type definition.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "INPUT_FIELD_DEFINITION", + "Description": "Location adjacent to an input object field definition.", + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__EnumValue", + "Kind": "Object", + "Description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", + "Fields": [ + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "isDeprecated", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "deprecationReason", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__Field", + "Kind": "Object", + "Description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", + "Fields": [ + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "args", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__InputValue", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "type", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "isDeprecated", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "deprecationReason", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__InputValue", + "Kind": "Object", + "Description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", + "Fields": [ + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "type", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "defaultValue", + "Description": "A GraphQL-formatted string representing the default value for this input value.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__Schema", + "Kind": "Object", + "Description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", + "Fields": [ + { + "__typename": "__Field", + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "types", + "Description": "A list of all types supported by this server.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "queryType", + "Description": "The type that query operations will be rooted at.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "mutationType", + "Description": "If this server supports mutation, the type that mutation operations will be rooted at.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "subscriptionType", + "Description": "If this server support subscription, the type that subscription operations will be rooted at.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "directives", + "Description": "A list of all directives supported by this server.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Directive", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", + "Fields": [ + { + "__typename": "__Field", + "Name": "kind", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__TypeKind", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "description", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "fields", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "includeDeprecated", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": "false" + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Field", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "interfaces", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "possibleTypes", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "enumValues", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "includeDeprecated", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": "false" + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__EnumValue", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "inputFields", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "__InputValue", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "ofType", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "__Type", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "specifiedByURL", + "Description": "`specifiedByURL` may return a String (in the form of a URL) for custom scalars, otherwise it will return `null`.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "__TypeKind", + "Kind": "Enum", + "Description": "An enum describing what kind of type a given `__Type` is.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "__typename": "__EnumValue", + "Name": "SCALAR", + "Description": "Indicates this type is a scalar.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "OBJECT", + "Description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "INTERFACE", + "Description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "UNION", + "Description": "Indicates this type is a union. `possibleTypes` is a valid field.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "ENUM", + "Description": "Indicates this type is an enum. `enumValues` is a valid field.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "INPUT_OBJECT", + "Description": "Indicates this type is an input object. `inputFields` is a valid field.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "LIST", + "Description": "Indicates this type is a list. `ofType` is a valid field.", + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "NON_NULL", + "Description": "Indicates this type is a non-null. `ofType` is a valid field.", + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Query", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "hero", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "episode", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": "NEW_HOPE" + } + ], + "Type": { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "heroes", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "episodes", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "character", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "characterIds", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "search", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "text", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "SearchResult", + "Kind": "Union", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "human", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "id", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "Human", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "droid", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "id", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "Droid", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Mutation", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "createReview", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "episode", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "review", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "ReviewInput", + "Kind": "InputObject", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Review", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Subscription", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "onReview", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "episode", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Review", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Human", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "ID", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "appearsIn", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "friends", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "first", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "after", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "last", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "before", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "CharacterConnection", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "otherHuman", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "Human", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "height", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "unit", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Unit", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "Float", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "homePlanet", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [ + { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + ], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Droid", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "ID", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "appearsIn", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "friends", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "first", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "after", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "last", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "before", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "CharacterConnection", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "height", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "unit", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Unit", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "Float", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "primaryFunction", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [ + { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + ], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "__typename": "__EnumValue", + "Name": "NEW_HOPE", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "EMPIRE", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "JEDI", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": "The `Boolean` scalar type represents `true` or `false`.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "ID", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "friends", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "first", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "after", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "last", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "before", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "CharacterConnection", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "appearsIn", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Episode", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "height", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "unit", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Unit", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": "Float", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": [ + { + "__typename": "__Type", + "Name": "Human", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Droid", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + ], + "OfType": null + }, + { + "__typename": "__Type", + "Name": "SearchResult", + "Kind": "Union", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": [ + { + "__typename": "__Type", + "Name": "Starship", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Human", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Droid", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + ], + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Review", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "stars", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "commentary", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "ReviewInput", + "Kind": "InputObject", + "Description": null, + "Fields": null, + "InputFields": [ + { + "__typename": "__InputValue", + "Name": "stars", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "commentary", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "ID", + "Kind": "Scalar", + "Description": "The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"4\"`) or integer (such as `4`) input value will be accepted as an ID.", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "CharacterConnection", + "Kind": "Object", + "Description": "A connection to a list of items.", + "Fields": [ + { + "__typename": "__Field", + "Name": "pageInfo", + "Description": "Information to aid in pagination.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "PageInfo", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "edges", + "Description": "A list of edges.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "CharacterEdge", + "Kind": "Object", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "nodes", + "Description": "A flattened list of the nodes.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "List", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Float", + "Kind": "Scalar", + "Description": "The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](http://en.wikipedia.org/wiki/IEEE_floating_point).", + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Unit", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": [ + { + "__typename": "__EnumValue", + "Name": "FOOT", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__EnumValue", + "Name": "METERS", + "Description": null, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "Starship", + "Kind": "Object", + "Description": null, + "Fields": [ + { + "__typename": "__Field", + "Name": "id", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "ID", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "name", + "Description": null, + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "length", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "unit", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "Unit", + "Kind": "Enum", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Float", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "PageInfo", + "Kind": "Object", + "Description": "Information about pagination in a connection.", + "Fields": [ + { + "__typename": "__Field", + "Name": "hasNextPage", + "Description": "Indicates whether more edges exist following the set defined by the clients arguments.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "hasPreviousPage", + "Description": "Indicates whether more edges exist prior the set defined by the clients arguments.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "startCursor", + "Description": "When paginating backwards, the cursor to continue.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "endCursor", + "Description": "When paginating forwards, the cursor to continue.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + { + "__typename": "__Type", + "Name": "CharacterEdge", + "Kind": "Object", + "Description": "An edge in a connection.", + "Fields": [ + { + "__typename": "__Field", + "Name": "cursor", + "Description": "A cursor for use in pagination.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "IsDeprecated": false, + "DeprecationReason": null + }, + { + "__typename": "__Field", + "Name": "node", + "Description": "The item at the end of the edge.", + "Args": [], + "Type": { + "__typename": "__Type", + "Name": "Character", + "Kind": "Interface", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "IsDeprecated": false, + "DeprecationReason": null + } + ], + "InputFields": null, + "Interfaces": [], + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + ], + "Directives": [ + { + "__typename": "__Directive", + "Name": "skip", + "Description": "Directs the executor to skip this field or fragment when the `if` argument is true.", + "Args": [ + { + "__typename": "__InputValue", + "Name": "if", + "Description": "Skipped when true.", + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": true, + "OnField": true + }, + { + "__typename": "__Directive", + "Name": "include", + "Description": "Directs the executor to include this field or fragment only when the `if` argument is true.", + "Args": [ + { + "__typename": "__InputValue", + "Name": "if", + "Description": "Included when true.", + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": true, + "OnField": true + }, + { + "__typename": "__Directive", + "Name": "defer", + "Description": "The `@defer` directive may be provided for fragment spreads and inline fragments to inform the executor to delay the execution of the current fragment to indicate deprioritization of the current fragment. A query with `@defer` directive will cause the request to potentially return multiple responses, where non-deferred data is delivered in the initial response and data deferred is delivered in a subsequent response. `@include` and `@skip` take precedence over `@defer`.", + "Args": [ + { + "__typename": "__InputValue", + "Name": "label", + "Description": "If this argument label has a value other than null, it will be passed on to the result of this defer directive. This label is intended to give client applications a way to identify to which fragment a deferred result belongs to.", + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "if", + "Description": "Deferred when true.", + "Type": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": true, + "OnField": false + }, + { + "__typename": "__Directive", + "Name": "stream", + "Description": "The `@stream` directive may be provided for a field of `List` type so that the backend can leverage technology such as asynchronous iterators to provide a partial list in the initial response, and additional list items in subsequent responses. `@include` and `@skip` take precedence over `@stream`.", + "Args": [ + { + "__typename": "__InputValue", + "Name": "label", + "Description": "If this argument label has a value other than null, it will be passed on to the result of this stream directive. This label is intended to give client applications a way to identify to which fragment a streamed result belongs to.", + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "initialCount", + "Description": "The initial elements that shall be send down to the consumer.", + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Int", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + }, + { + "__typename": "__InputValue", + "Name": "if", + "Description": "Streamed when true.", + "Type": { + "__typename": "__Type", + "Name": null, + "Kind": "NonNull", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": { + "__typename": "__Type", + "Name": "Boolean", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + } + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": false, + "OnField": true + }, + { + "__typename": "__Directive", + "Name": "export", + "Description": null, + "Args": [ + { + "__typename": "__InputValue", + "Name": "as", + "Description": null, + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": null + } + ], + "OnOperation": false, + "OnFragment": false, + "OnField": true + }, + { + "__typename": "__Directive", + "Name": "deprecated", + "Description": "The @deprecated directive is used within the type system definition language to indicate deprecated portions of a GraphQL service’s schema,such as deprecated fields on a type or deprecated enum values.", + "Args": [ + { + "__typename": "__InputValue", + "Name": "reason", + "Description": "Deprecations include a reason for why it is deprecated, which is formatted using Markdown syntax (as specified by CommonMark).", + "Type": { + "__typename": "__Type", + "Name": "String", + "Kind": "Scalar", + "Description": null, + "Fields": null, + "InputFields": null, + "Interfaces": null, + "EnumValues": null, + "PossibleTypes": null, + "OfType": null + }, + "DefaultValue": "\"No longer supported\"" + } + ], + "OnOperation": false, + "OnFragment": false, + "OnField": false + } + ] + }, + "EntityIds": [], + "Version": 1 + }, + "DataFactory": {}, + "Errors": [], + "Extensions": {}, + "ContextData": {} +} diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/SchemaGeneratorTests.cs b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/SchemaGeneratorTests.cs index 13923774329..34c412d5558 100644 --- a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/SchemaGeneratorTests.cs +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/SchemaGeneratorTests.cs @@ -431,5 +431,15 @@ public void MultiLineDocumentation() abc: String }"); } + + [Fact] + public void IntrospectionQuery() + { + AssertResult( + FileResource.Open("IntrospectionQuery.graphql"), + @"type Query { + abc: String + }"); + } } } diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/__resources__/IntrospectionQuery.graphql b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/__resources__/IntrospectionQuery.graphql new file mode 100644 index 00000000000..e53c801cdc3 --- /dev/null +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/__resources__/IntrospectionQuery.graphql @@ -0,0 +1,85 @@ +query IntrospectionQuery { + __schema { + queryType { + name + } + mutationType { + name + } + subscriptionType { + name + } + types { + ...FullType + } + directives { + name + description + args { + ...InputValue + } + onOperation + onFragment + onField + } + } +} + +fragment FullType on __Type { + kind + name + description + fields(includeDeprecated: true) { + name + description + args { + ...InputValue + } + type { + ...TypeRef + } + isDeprecated + deprecationReason + } + inputFields { + ...InputValue + } + interfaces { + ...TypeRef + } + enumValues(includeDeprecated: true) { + name + description + isDeprecated + deprecationReason + } + possibleTypes { + ...TypeRef + } +} + +fragment InputValue on __InputValue { + name + description + type { + ...TypeRef + } + defaultValue +} + +fragment TypeRef on __Type { + kind + name + ofType { + kind + name + ofType { + kind + name + ofType { + kind + name + } + } + } +} diff --git a/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/__snapshots__/SchemaGeneratorTests.IntrospectionQuery.snap b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/__snapshots__/SchemaGeneratorTests.IntrospectionQuery.snap new file mode 100644 index 00000000000..61694e1e9ba --- /dev/null +++ b/src/StrawberryShake/CodeGeneration/test/CodeGeneration.CSharp.Tests/__snapshots__/SchemaGeneratorTests.IntrospectionQuery.snap @@ -0,0 +1,5087 @@ +// ReSharper disable BuiltInTypeReferenceStyle +// ReSharper disable RedundantNameQualifier +// ReSharper disable ArrangeObjectCreationWhenTypeEvident +// ReSharper disable UnusedType.Global +// ReSharper disable PartialTypeWithSinglePart +// ReSharper disable UnusedMethodReturnValue.Local +// ReSharper disable ConvertToAutoProperty +// ReSharper disable UnusedMember.Global +// ReSharper disable SuggestVarOrType_SimpleTypes +// ReSharper disable InconsistentNaming + +// FooClient + +// +#nullable enable + +namespace Foo.Bar +{ + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryResult : global::System.IEquatable, IIntrospectionQueryResult + { + public IntrospectionQueryResult(global::Foo.Bar.IIntrospectionQuery___schema __schema) + { + this.__schema = __schema; + } + + /// + /// Access the current type schema of this server. + /// + public global::Foo.Bar.IIntrospectionQuery___schema __schema + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQueryResult? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (__schema.Equals(other.__schema)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQueryResult)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * __schema.GetHashCode(); + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema___Schema : global::System.IEquatable, IIntrospectionQuery___schema___Schema + { + public IntrospectionQuery___schema___Schema(global::Foo.Bar.IIntrospectionQuery___schema_QueryType queryType, global::Foo.Bar.IIntrospectionQuery___schema_MutationType? mutationType, global::Foo.Bar.IIntrospectionQuery___schema_SubscriptionType? subscriptionType, global::System.Collections.Generic.IReadOnlyList types, global::System.Collections.Generic.IReadOnlyList directives) + { + QueryType = queryType; + MutationType = mutationType; + SubscriptionType = subscriptionType; + Types = types; + Directives = directives; + } + + /// + /// The type that query operations will be rooted at. + /// + public global::Foo.Bar.IIntrospectionQuery___schema_QueryType QueryType + { + get; + } + + /// + /// If this server supports mutation, the type that mutation operations will be rooted at. + /// + public global::Foo.Bar.IIntrospectionQuery___schema_MutationType? MutationType + { + get; + } + + /// + /// If this server support subscription, the type that subscription operations will be rooted at. + /// + public global::Foo.Bar.IIntrospectionQuery___schema_SubscriptionType? SubscriptionType + { + get; + } + + /// + /// A list of all types supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Types + { + get; + } + + /// + /// A list of all directives supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Directives + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema___Schema? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (QueryType.Equals(other.QueryType)) && ((MutationType is null && other.MutationType is null) || MutationType != null && MutationType.Equals(other.MutationType)) && ((SubscriptionType is null && other.SubscriptionType is null) || SubscriptionType != null && SubscriptionType.Equals(other.SubscriptionType)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Types, other.Types) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Directives, other.Directives); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema___Schema)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * QueryType.GetHashCode(); + if (MutationType != null) + { + hash ^= 397 * MutationType.GetHashCode(); + } + + if (SubscriptionType != null) + { + hash ^= 397 * SubscriptionType.GetHashCode(); + } + + foreach (var Types_elm in Types) + { + hash ^= 397 * Types_elm.GetHashCode(); + } + + foreach (var Directives_elm in Directives) + { + hash ^= 397 * Directives_elm.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_QueryType___Type : global::System.IEquatable, IIntrospectionQuery___schema_QueryType___Type + { + public IntrospectionQuery___schema_QueryType___Type(global::System.String? name) + { + Name = name; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_QueryType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_QueryType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_MutationType___Type : global::System.IEquatable, IIntrospectionQuery___schema_MutationType___Type + { + public IntrospectionQuery___schema_MutationType___Type(global::System.String? name) + { + Name = name; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_MutationType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_MutationType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_SubscriptionType___Type : global::System.IEquatable, IIntrospectionQuery___schema_SubscriptionType___Type + { + public IntrospectionQuery___schema_SubscriptionType___Type(global::System.String? name) + { + Name = name; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_SubscriptionType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name))); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_SubscriptionType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types___Type + { + public IntrospectionQuery___schema_Types___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::System.String? description, global::System.Collections.Generic.IReadOnlyList? fields, global::System.Collections.Generic.IReadOnlyList? inputFields, global::System.Collections.Generic.IReadOnlyList? interfaces, global::System.Collections.Generic.IReadOnlyList? enumValues, global::System.Collections.Generic.IReadOnlyList? possibleTypes) + { + Kind = kind; + Name = name; + Description = description; + Fields = fields; + InputFields = inputFields; + Interfaces = interfaces; + EnumValues = enumValues; + PossibleTypes = possibleTypes; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Fields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? InputFields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Interfaces + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? EnumValues + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? PossibleTypes + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Fields, other.Fields) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(InputFields, other.InputFields) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Interfaces, other.Interfaces) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(EnumValues, other.EnumValues) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(PossibleTypes, other.PossibleTypes); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + if (Fields != null) + { + foreach (var Fields_elm in Fields) + { + hash ^= 397 * Fields_elm.GetHashCode(); + } + } + + if (InputFields != null) + { + foreach (var InputFields_elm in InputFields) + { + hash ^= 397 * InputFields_elm.GetHashCode(); + } + } + + if (Interfaces != null) + { + foreach (var Interfaces_elm in Interfaces) + { + hash ^= 397 * Interfaces_elm.GetHashCode(); + } + } + + if (EnumValues != null) + { + foreach (var EnumValues_elm in EnumValues) + { + hash ^= 397 * EnumValues_elm.GetHashCode(); + } + } + + if (PossibleTypes != null) + { + foreach (var PossibleTypes_elm in PossibleTypes) + { + hash ^= 397 * PossibleTypes_elm.GetHashCode(); + } + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + /// + /// In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Directives___Directive : global::System.IEquatable, IIntrospectionQuery___schema_Directives___Directive + { + public IntrospectionQuery___schema_Directives___Directive(global::System.String name, global::System.String? description, global::System.Collections.Generic.IReadOnlyList args, global::System.Boolean onOperation, global::System.Boolean onFragment, global::System.Boolean onField) + { + Name = name; + Description = description; + Args = args; + OnOperation = onOperation; + OnFragment = onFragment; + OnField = onField; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::System.Boolean OnOperation + { + get; + } + + public global::System.Boolean OnFragment + { + get; + } + + public global::System.Boolean OnField + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Directives___Directive? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Args, other.Args) && OnOperation == other.OnOperation && OnFragment == other.OnFragment && OnField == other.OnField; + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Directives___Directive)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + foreach (var Args_elm in Args) + { + hash ^= 397 * Args_elm.GetHashCode(); + } + + hash ^= 397 * OnOperation.GetHashCode(); + hash ^= 397 * OnFragment.GetHashCode(); + hash ^= 397 * OnField.GetHashCode(); + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields___Field : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields___Field + { + public IntrospectionQuery___schema_Types_Fields___Field(global::System.String name, global::System.String? description, global::System.Collections.Generic.IReadOnlyList args, global::Foo.Bar.IIntrospectionQuery___schema_Types_Fields_Type type, global::System.Boolean isDeprecated, global::System.String? deprecationReason) + { + Name = name; + Description = description; + Args = args; + Type = type; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Fields_Type Type + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields___Field? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && global::StrawberryShake.Helper.ComparisonHelper.SequenceEqual(Args, other.Args) && Type.Equals(other.Type) && IsDeprecated == other.IsDeprecated && ((DeprecationReason is null && other.DeprecationReason is null) || DeprecationReason != null && DeprecationReason.Equals(other.DeprecationReason)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields___Field)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + foreach (var Args_elm in Args) + { + hash ^= 397 * Args_elm.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + hash ^= 397 * IsDeprecated.GetHashCode(); + if (DeprecationReason != null) + { + hash ^= 397 * DeprecationReason.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_InputFields___InputValue : global::System.IEquatable, IIntrospectionQuery___schema_Types_InputFields___InputValue + { + public IntrospectionQuery___schema_Types_InputFields___InputValue(global::System.String name, global::System.String? description, global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type type, global::System.String? defaultValue) + { + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_InputFields___InputValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && Type.Equals(other.Type) && ((DefaultValue is null && other.DefaultValue is null) || DefaultValue != null && DefaultValue.Equals(other.DefaultValue)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_InputFields___InputValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + if (DefaultValue != null) + { + hash ^= 397 * DefaultValue.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces___Type + { + public IntrospectionQuery___schema_Types_Interfaces___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_EnumValues___EnumValue : global::System.IEquatable, IIntrospectionQuery___schema_Types_EnumValues___EnumValue + { + public IntrospectionQuery___schema_Types_EnumValues___EnumValue(global::System.String name, global::System.String? description, global::System.Boolean isDeprecated, global::System.String? deprecationReason) + { + Name = name; + Description = description; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_EnumValues___EnumValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && IsDeprecated == other.IsDeprecated && ((DeprecationReason is null && other.DeprecationReason is null) || DeprecationReason != null && DeprecationReason.Equals(other.DeprecationReason)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_EnumValues___EnumValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * IsDeprecated.GetHashCode(); + if (DeprecationReason != null) + { + hash ^= 397 * DeprecationReason.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_PossibleTypes___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_PossibleTypes___Type + { + public IntrospectionQuery___schema_Types_PossibleTypes___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_PossibleTypes___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_PossibleTypes___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Directives_Args___InputValue : global::System.IEquatable, IIntrospectionQuery___schema_Directives_Args___InputValue + { + public IntrospectionQuery___schema_Directives_Args___InputValue(global::System.String name, global::System.String? description, global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type type, global::System.String? defaultValue) + { + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Directives_Args___InputValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && Type.Equals(other.Type) && ((DefaultValue is null && other.DefaultValue is null) || DefaultValue != null && DefaultValue.Equals(other.DefaultValue)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Directives_Args___InputValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + if (DefaultValue != null) + { + hash ^= 397 * DefaultValue.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Args___InputValue : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Args___InputValue + { + public IntrospectionQuery___schema_Types_Fields_Args___InputValue(global::System.String name, global::System.String? description, global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type type, global::System.String? defaultValue) + { + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Args___InputValue? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Name.Equals(other.Name)) && ((Description is null && other.Description is null) || Description != null && Description.Equals(other.Description)) && Type.Equals(other.Type) && ((DefaultValue is null && other.DefaultValue is null) || DefaultValue != null && DefaultValue.Equals(other.DefaultValue)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Args___InputValue)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Name.GetHashCode(); + if (Description != null) + { + hash ^= 397 * Description.GetHashCode(); + } + + hash ^= 397 * Type.GetHashCode(); + if (DefaultValue != null) + { + hash ^= 397 * DefaultValue.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Type___Type + { + public IntrospectionQuery___schema_Types_Fields_Type___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_InputFields_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_InputFields_Type___Type + { + public IntrospectionQuery___schema_Types_InputFields_Type___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_InputFields_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_InputFields_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces_OfType___Type + { + public IntrospectionQuery___schema_Types_Interfaces_OfType___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_PossibleTypes_OfType___Type + { + public IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_PossibleTypes_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Directives_Args_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Directives_Args_Type___Type + { + public IntrospectionQuery___schema_Directives_Args_Type___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Directives_Args_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Directives_Args_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Args_Type___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Args_Type___Type + { + public IntrospectionQuery___schema_Types_Fields_Args_Type___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Args_Type___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Args_Type___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Fields_Type_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Fields_Type_OfType___Type + { + public IntrospectionQuery___schema_Types_Fields_Type_OfType___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Fields_Type_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Fields_Type_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_InputFields_Type_OfType___Type + { + public IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_InputFields_Type_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type + { + public IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name, global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? ofType) + { + Kind = kind; + Name = name; + OfType = ofType; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? OfType + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)) && ((OfType is null && other.OfType is null) || OfType != null && OfType.Equals(other.OfType)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + if (OfType != null) + { + hash ^= 397 * OfType.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultTypeGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type : global::System.IEquatable, IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type + { + public IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type(global::Foo.Bar.__TypeKind kind, global::System.String? name) + { + Kind = kind; + Name = name; + } + + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public virtual global::System.Boolean Equals(IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type? other) + { + if (ReferenceEquals(null, other)) + { + return false; + } + + if (ReferenceEquals(this, other)) + { + return true; + } + + if (other.GetType() != GetType()) + { + return false; + } + + return (Kind.Equals(other.Kind)) && ((Name is null && other.Name is null) || Name != null && Name.Equals(other.Name)); + } + + public override global::System.Boolean Equals(global::System.Object? obj) + { + if (ReferenceEquals(null, obj)) + { + return false; + } + + if (ReferenceEquals(this, obj)) + { + return true; + } + + if (obj.GetType() != GetType()) + { + return false; + } + + return Equals((IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type)obj); + } + + public override global::System.Int32 GetHashCode() + { + unchecked + { + int hash = 5; + hash ^= 397 * Kind.GetHashCode(); + if (Name != null) + { + hash ^= 397 * Name.GetHashCode(); + } + + return hash; + } + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQueryResult + { + /// + /// Access the current type schema of this server. + /// + public global::Foo.Bar.IIntrospectionQuery___schema __schema + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema + { + /// + /// The type that query operations will be rooted at. + /// + public global::Foo.Bar.IIntrospectionQuery___schema_QueryType QueryType + { + get; + } + + /// + /// If this server supports mutation, the type that mutation operations will be rooted at. + /// + public global::Foo.Bar.IIntrospectionQuery___schema_MutationType? MutationType + { + get; + } + + /// + /// If this server support subscription, the type that subscription operations will be rooted at. + /// + public global::Foo.Bar.IIntrospectionQuery___schema_SubscriptionType? SubscriptionType + { + get; + } + + /// + /// A list of all types supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Types + { + get; + } + + /// + /// A list of all directives supported by this server. + /// + public global::System.Collections.Generic.IReadOnlyList Directives + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema___Schema : IIntrospectionQuery___schema + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_QueryType + { + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_QueryType___Type : IIntrospectionQuery___schema_QueryType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_MutationType + { + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_MutationType___Type : IIntrospectionQuery___schema_MutationType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_SubscriptionType + { + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_SubscriptionType___Type : IIntrospectionQuery___schema_SubscriptionType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IFullType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Fields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? InputFields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Interfaces + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? EnumValues + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? PossibleTypes + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types : IFullType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types___Type : IIntrospectionQuery___schema_Types + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + /// + /// In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::System.Boolean OnOperation + { + get; + } + + public global::System.Boolean OnFragment + { + get; + } + + public global::System.Boolean OnField + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document. + /// + /// In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives___Directive : IIntrospectionQuery___schema_Directives + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList Args + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Fields_Type Type + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields___Field : IIntrospectionQuery___schema_Types_Fields + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IInputValue + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type Type + { + get; + } + + /// + /// A GraphQL-formatted string representing the default value for this input value. + /// + public global::System.String? DefaultValue + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields : IInputValue + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields___InputValue : IIntrospectionQuery___schema_Types_InputFields + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface ITypeRef + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces___Type : IIntrospectionQuery___schema_Types_Interfaces + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_EnumValues + { + public global::System.String Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Boolean IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_EnumValues___EnumValue : IIntrospectionQuery___schema_Types_EnumValues + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes___Type : IIntrospectionQuery___schema_Types_PossibleTypes + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args : IInputValue + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args___InputValue : IIntrospectionQuery___schema_Directives_Args + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args : IInputValue + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args___InputValue : IIntrospectionQuery___schema_Types_Fields_Args + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type___Type : IIntrospectionQuery___schema_Types_Fields_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type___Type : IIntrospectionQuery___schema_Types_InputFields_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType___Type : IIntrospectionQuery___schema_Types_Interfaces_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes_OfType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_PossibleTypes_OfType___Type : IIntrospectionQuery___schema_Types_PossibleTypes_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Directives_Args_Type___Type : IIntrospectionQuery___schema_Directives_Args_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args_Type : ITypeRef + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Args_Type___Type : IIntrospectionQuery___schema_Types_Fields_Args_Type + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type_OfType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Fields_Type_OfType___Type : IIntrospectionQuery___schema_Types_Fields_Type_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type_OfType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_InputFields_Type_OfType___Type : IIntrospectionQuery___schema_Types_InputFields_Type_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type : IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType + { + public global::Foo.Bar.__TypeKind Kind + { + get; + } + + public global::System.String? Name + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInterfaceGenerator + /// + /// The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum. + /// + /// Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type : IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType + { + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.EnumGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public enum __TypeKind + { + /// + /// Indicates this type is a scalar. + /// + Scalar, + /// + /// Indicates this type is an object. `fields` and `interfaces` are valid fields. + /// + Object, + /// + /// Indicates this type is an interface. `fields` and `possibleTypes` are valid fields. + /// + Interface, + /// + /// Indicates this type is a union. `possibleTypes` is a valid field. + /// + Union, + /// + /// Indicates this type is an enum. `enumValues` is a valid field. + /// + Enum, + /// + /// Indicates this type is an input object. `inputFields` is a valid field. + /// + InputObject, + /// + /// Indicates this type is a list. `ofType` is a valid field. + /// + List, + /// + /// Indicates this type is a non-null. `ofType` is a valid field. + /// + NonNull + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.EnumParserGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class __TypeKindSerializer : global::StrawberryShake.Serialization.IInputValueFormatter, global::StrawberryShake.Serialization.ILeafValueParser + { + public global::System.String TypeName => "__TypeKind"; + public __TypeKind Parse(global::System.String serializedValue) + { + return serializedValue switch + { + "SCALAR" => __TypeKind.Scalar, "OBJECT" => __TypeKind.Object, "INTERFACE" => __TypeKind.Interface, "UNION" => __TypeKind.Union, "ENUM" => __TypeKind.Enum, "INPUT_OBJECT" => __TypeKind.InputObject, "LIST" => __TypeKind.List, "NON_NULL" => __TypeKind.NonNull, _ => throw new global::StrawberryShake.GraphQLClientException()} + + ; + } + + public global::System.Object Format(global::System.Object? runtimeValue) + { + return runtimeValue switch + { + __TypeKind.Scalar => "SCALAR", __TypeKind.Object => "OBJECT", __TypeKind.Interface => "INTERFACE", __TypeKind.Union => "UNION", __TypeKind.Enum => "ENUM", __TypeKind.InputObject => "INPUT_OBJECT", __TypeKind.List => "LIST", __TypeKind.NonNull => "NON_NULL", _ => throw new global::StrawberryShake.GraphQLClientException()} + + ; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.OperationDocumentGenerator + /// + /// Represents the operation service of the IntrospectionQuery GraphQL operation + /// + /// query IntrospectionQuery { + /// __schema { + /// __typename + /// queryType { + /// __typename + /// name + /// } + /// mutationType { + /// __typename + /// name + /// } + /// subscriptionType { + /// __typename + /// name + /// } + /// types { + /// __typename + /// ... FullType + /// } + /// directives { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// onOperation + /// onFragment + /// onField + /// } + /// } + /// } + /// + /// fragment FullType on __Type { + /// kind + /// name + /// description + /// fields(includeDeprecated: true) { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// type { + /// __typename + /// ... TypeRef + /// } + /// isDeprecated + /// deprecationReason + /// } + /// inputFields { + /// __typename + /// ... InputValue + /// } + /// interfaces { + /// __typename + /// ... TypeRef + /// } + /// enumValues(includeDeprecated: true) { + /// __typename + /// name + /// description + /// isDeprecated + /// deprecationReason + /// } + /// possibleTypes { + /// __typename + /// ... TypeRef + /// } + /// } + /// + /// fragment InputValue on __InputValue { + /// name + /// description + /// type { + /// __typename + /// ... TypeRef + /// } + /// defaultValue + /// } + /// + /// fragment TypeRef on __Type { + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryQueryDocument : global::StrawberryShake.IDocument + { + private IntrospectionQueryQueryDocument() + { + } + + public static IntrospectionQueryQueryDocument Instance + { + get; + } + + = new IntrospectionQueryQueryDocument(); + public global::StrawberryShake.OperationKind Kind => global::StrawberryShake.OperationKind.Query; + public global::System.ReadOnlySpan Body => new global::System.Byte[]{0x71, 0x75, 0x65, 0x72, 0x79, 0x20, 0x49, 0x6e, 0x74, 0x72, 0x6f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x71, 0x75, 0x65, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7d, 0x20, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x72, 0x67, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x69, 0x73, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x7d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x28, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x20, 0x7d, 0x20, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7b, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x2e, 0x2e, 0x2e, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x7d, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x7d, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x20, 0x6f, 0x6e, 0x20, 0x5f, 0x5f, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x20, 0x7b, 0x20, 0x5f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6b, 0x69, 0x6e, 0x64, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d, 0x20, 0x7d}; + public global::StrawberryShake.DocumentHash Hash + { + get; + } + + = new global::StrawberryShake.DocumentHash("sha1Hash", "5902e9f9fd92bc2e9785f0821db6ff925e660fde"); + public override global::System.String ToString() + { +#if NETSTANDARD2_0 + return global::System.Text.Encoding.UTF8.GetString(Body.ToArray()); +#else + return global::System.Text.Encoding.UTF8.GetString(Body); +#endif + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.OperationServiceGenerator + /// + /// Represents the operation service of the IntrospectionQuery GraphQL operation + /// + /// query IntrospectionQuery { + /// __schema { + /// __typename + /// queryType { + /// __typename + /// name + /// } + /// mutationType { + /// __typename + /// name + /// } + /// subscriptionType { + /// __typename + /// name + /// } + /// types { + /// __typename + /// ... FullType + /// } + /// directives { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// onOperation + /// onFragment + /// onField + /// } + /// } + /// } + /// + /// fragment FullType on __Type { + /// kind + /// name + /// description + /// fields(includeDeprecated: true) { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// type { + /// __typename + /// ... TypeRef + /// } + /// isDeprecated + /// deprecationReason + /// } + /// inputFields { + /// __typename + /// ... InputValue + /// } + /// interfaces { + /// __typename + /// ... TypeRef + /// } + /// enumValues(includeDeprecated: true) { + /// __typename + /// name + /// description + /// isDeprecated + /// deprecationReason + /// } + /// possibleTypes { + /// __typename + /// ... TypeRef + /// } + /// } + /// + /// fragment InputValue on __InputValue { + /// name + /// description + /// type { + /// __typename + /// ... TypeRef + /// } + /// defaultValue + /// } + /// + /// fragment TypeRef on __Type { + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryQuery : global::Foo.Bar.IIntrospectionQueryQuery + { + private readonly global::StrawberryShake.IOperationExecutor _operationExecutor; + public IntrospectionQueryQuery(global::StrawberryShake.IOperationExecutor operationExecutor) + { + _operationExecutor = operationExecutor ?? throw new global::System.ArgumentNullException(nameof(operationExecutor)); + } + + global::System.Type global::StrawberryShake.IOperationRequestFactory.ResultType => typeof(IIntrospectionQueryResult); + public async global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Threading.CancellationToken cancellationToken = default) + { + var request = CreateRequest(); + return await _operationExecutor.ExecuteAsync(request, cancellationToken).ConfigureAwait(false); + } + + public global::System.IObservable> Watch(global::StrawberryShake.ExecutionStrategy? strategy = null) + { + var request = CreateRequest(); + return _operationExecutor.Watch(request, strategy); + } + + private global::StrawberryShake.OperationRequest CreateRequest() + { + return CreateRequest(null); + } + + private global::StrawberryShake.OperationRequest CreateRequest(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return new global::StrawberryShake.OperationRequest(id: IntrospectionQueryQueryDocument.Instance.Hash.Value, name: "IntrospectionQuery", document: IntrospectionQueryQueryDocument.Instance, strategy: global::StrawberryShake.RequestStrategy.Default); + } + + global::StrawberryShake.OperationRequest global::StrawberryShake.IOperationRequestFactory.Create(global::System.Collections.Generic.IReadOnlyDictionary? variables) + { + return CreateRequest(); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.OperationServiceInterfaceGenerator + /// + /// Represents the operation service of the IntrospectionQuery GraphQL operation + /// + /// query IntrospectionQuery { + /// __schema { + /// __typename + /// queryType { + /// __typename + /// name + /// } + /// mutationType { + /// __typename + /// name + /// } + /// subscriptionType { + /// __typename + /// name + /// } + /// types { + /// __typename + /// ... FullType + /// } + /// directives { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// onOperation + /// onFragment + /// onField + /// } + /// } + /// } + /// + /// fragment FullType on __Type { + /// kind + /// name + /// description + /// fields(includeDeprecated: true) { + /// __typename + /// name + /// description + /// args { + /// __typename + /// ... InputValue + /// } + /// type { + /// __typename + /// ... TypeRef + /// } + /// isDeprecated + /// deprecationReason + /// } + /// inputFields { + /// __typename + /// ... InputValue + /// } + /// interfaces { + /// __typename + /// ... TypeRef + /// } + /// enumValues(includeDeprecated: true) { + /// __typename + /// name + /// description + /// isDeprecated + /// deprecationReason + /// } + /// possibleTypes { + /// __typename + /// ... TypeRef + /// } + /// } + /// + /// fragment InputValue on __InputValue { + /// name + /// description + /// type { + /// __typename + /// ... TypeRef + /// } + /// defaultValue + /// } + /// + /// fragment TypeRef on __Type { + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// ofType { + /// __typename + /// kind + /// name + /// } + /// } + /// } + /// } + /// + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IIntrospectionQueryQuery : global::StrawberryShake.IOperationRequestFactory + { + global::System.Threading.Tasks.Task> ExecuteAsync(global::System.Threading.CancellationToken cancellationToken = default); + global::System.IObservable> Watch(global::StrawberryShake.ExecutionStrategy? strategy = null); + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ClientGenerator + /// + /// Represents the FooClient GraphQL client + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class FooClient : global::Foo.Bar.IFooClient + { + private readonly global::Foo.Bar.IIntrospectionQueryQuery _introspectionQuery; + public FooClient(global::Foo.Bar.IIntrospectionQueryQuery introspectionQuery) + { + _introspectionQuery = introspectionQuery ?? throw new global::System.ArgumentNullException(nameof(introspectionQuery)); + } + + public static global::System.String ClientName => "FooClient"; + public global::Foo.Bar.IIntrospectionQueryQuery IntrospectionQuery => _introspectionQuery; + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ClientInterfaceGenerator + /// + /// Represents the FooClient GraphQL client + /// + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public interface IFooClient + { + global::Foo.Bar.IIntrospectionQueryQuery IntrospectionQuery + { + get; + } + } +} + +namespace Foo.Bar.State +{ + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultDataFactoryGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryResultFactory : global::StrawberryShake.IOperationResultDataFactory + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + public IntrospectionQueryResultFactory(global::StrawberryShake.IEntityStore entityStore) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + } + + global::System.Type global::StrawberryShake.IOperationResultDataFactory.ResultType => typeof(global::Foo.Bar.IIntrospectionQueryResult); + public IntrospectionQueryResult Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot = null) + { + if (snapshot is null) + { + snapshot = _entityStore.CurrentSnapshot; + } + + if (dataInfo is IntrospectionQueryResultInfo info) + { + return new IntrospectionQueryResult(MapNonNullableIIntrospectionQuery___schema(info.__schema, snapshot)); + } + + throw new global::System.ArgumentException("IntrospectionQueryResultInfo expected."); + } + + private global::Foo.Bar.IIntrospectionQuery___schema MapNonNullableIIntrospectionQuery___schema(global::Foo.Bar.State.__SchemaData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema returnValue = default !; + if (data.__typename.Equals("__Schema", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema___Schema(MapNonNullableIIntrospectionQuery___schema_QueryType(data.QueryType ?? throw new global::System.ArgumentNullException(), snapshot), MapIIntrospectionQuery___schema_MutationType(data.MutationType, snapshot), MapIIntrospectionQuery___schema_SubscriptionType(data.SubscriptionType, snapshot), MapNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(data.Types ?? throw new global::System.ArgumentNullException(), snapshot), MapNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(data.Directives ?? throw new global::System.ArgumentNullException(), snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_QueryType MapNonNullableIIntrospectionQuery___schema_QueryType(global::Foo.Bar.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_QueryType returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_QueryType___Type(data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_MutationType? MapIIntrospectionQuery___schema_MutationType(global::Foo.Bar.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_MutationType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_MutationType___Type(data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_SubscriptionType? MapIIntrospectionQuery___schema_SubscriptionType(global::Foo.Bar.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_SubscriptionType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_SubscriptionType___Type(data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__TypeData child in list) + { + __Types.Add(MapNonNullableIIntrospectionQuery___schema_Types(child, snapshot)); + } + + return __Types; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types MapNonNullableIIntrospectionQuery___schema_Types(global::Foo.Bar.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, data.Description, MapIIntrospectionQuery___schema_Types_FieldsNonNullableArray(data.Fields, snapshot), MapIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(data.InputFields, snapshot), MapIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(data.Interfaces, snapshot), MapIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(data.EnumValues, snapshot), MapIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(data.PossibleTypes, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_FieldsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __Fields = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__FieldData child in list) + { + __Fields.Add(MapNonNullableIIntrospectionQuery___schema_Types_Fields(child, snapshot)); + } + + return __Fields; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Fields MapNonNullableIIntrospectionQuery___schema_Types_Fields(global::Foo.Bar.State.__FieldData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Fields returnValue = default !; + if (data.__typename.Equals("__Field", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Fields___Field(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(data.Args ?? throw new global::System.ArgumentNullException(), snapshot), MapNonNullableIIntrospectionQuery___schema_Types_Fields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.IsDeprecated ?? throw new global::System.ArgumentNullException(), data.DeprecationReason); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__InputValueData child in list) + { + __InputValues.Add(MapNonNullableIIntrospectionQuery___schema_Types_Fields_Args(child, snapshot)); + } + + return __InputValues; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Fields_Args MapNonNullableIIntrospectionQuery___schema_Types_Fields_Args(global::Foo.Bar.State.__InputValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Fields_Args returnValue = default !; + if (data.__typename.Equals("__InputValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Fields_Args___InputValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.DefaultValue); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields_Type MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::Foo.Bar.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_InputFields_Type returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_InputFields_Type___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType? MapIIntrospectionQuery___schema_Types_Interfaces_OfType(global::Foo.Bar.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_Types_Interfaces_OfType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces_OfType___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType? MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(global::Foo.Bar.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces_OfType_OfType___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType? MapIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(global::Foo.Bar.State.__TypeData? data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (data is null) + { + return null; + } + + IIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType returnValue = default !; + if (data?.__typename.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Fields_Type MapNonNullableIIntrospectionQuery___schema_Types_Fields_Type(global::Foo.Bar.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Fields_Type returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Fields_Type___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__InputValueData child in list) + { + __InputValues.Add(MapNonNullableIIntrospectionQuery___schema_Types_InputFields(child, snapshot)); + } + + return __InputValues; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_InputFields MapNonNullableIIntrospectionQuery___schema_Types_InputFields(global::Foo.Bar.State.__InputValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_InputFields returnValue = default !; + if (data.__typename.Equals("__InputValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_InputFields___InputValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.DefaultValue); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__TypeData child in list) + { + __Types.Add(MapNonNullableIIntrospectionQuery___schema_Types_Interfaces(child, snapshot)); + } + + return __Types; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_Interfaces MapNonNullableIIntrospectionQuery___schema_Types_Interfaces(global::Foo.Bar.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_Interfaces returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_Interfaces___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __EnumValues = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__EnumValueData child in list) + { + __EnumValues.Add(MapNonNullableIIntrospectionQuery___schema_Types_EnumValues(child, snapshot)); + } + + return __EnumValues; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_EnumValues MapNonNullableIIntrospectionQuery___schema_Types_EnumValues(global::Foo.Bar.State.__EnumValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_EnumValues returnValue = default !; + if (data.__typename.Equals("__EnumValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_EnumValues___EnumValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, data.IsDeprecated ?? throw new global::System.ArgumentNullException(), data.DeprecationReason); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList? MapIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__TypeData child in list) + { + __Types.Add(MapNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(child, snapshot)); + } + + return __Types; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Types_PossibleTypes MapNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(global::Foo.Bar.State.__TypeData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Types_PossibleTypes returnValue = default !; + if (data.__typename.Equals("__Type", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Types_PossibleTypes___Type(data.Kind ?? throw new global::System.ArgumentNullException(), data.Name, MapIIntrospectionQuery___schema_Types_Interfaces_OfType(data.OfType, snapshot)); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __Directives = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__DirectiveData child in list) + { + __Directives.Add(MapNonNullableIIntrospectionQuery___schema_Directives(child, snapshot)); + } + + return __Directives; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Directives MapNonNullableIIntrospectionQuery___schema_Directives(global::Foo.Bar.State.__DirectiveData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Directives returnValue = default !; + if (data.__typename.Equals("__Directive", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Directives___Directive(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(data.Args ?? throw new global::System.ArgumentNullException(), snapshot), data.OnOperation ?? throw new global::System.ArgumentNullException(), data.OnFragment ?? throw new global::System.ArgumentNullException(), data.OnField ?? throw new global::System.ArgumentNullException()); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + private global::System.Collections.Generic.IReadOnlyList MapNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(global::System.Collections.Generic.IReadOnlyList? list, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + if (list is null) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::Foo.Bar.State.__InputValueData child in list) + { + __InputValues.Add(MapNonNullableIIntrospectionQuery___schema_Directives_Args(child, snapshot)); + } + + return __InputValues; + } + + private global::Foo.Bar.IIntrospectionQuery___schema_Directives_Args MapNonNullableIIntrospectionQuery___schema_Directives_Args(global::Foo.Bar.State.__InputValueData data, global::StrawberryShake.IEntityStoreSnapshot snapshot) + { + IIntrospectionQuery___schema_Directives_Args returnValue = default !; + if (data.__typename.Equals("__InputValue", global::System.StringComparison.Ordinal)) + { + returnValue = new IntrospectionQuery___schema_Directives_Args___InputValue(data.Name ?? throw new global::System.ArgumentNullException(), data.Description, MapNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(data.Type ?? throw new global::System.ArgumentNullException(), snapshot), data.DefaultValue); + } + else + { + throw new global::System.NotSupportedException(); + } + + return returnValue; + } + + global::System.Object global::StrawberryShake.IOperationResultDataFactory.Create(global::StrawberryShake.IOperationResultDataInfo dataInfo, global::StrawberryShake.IEntityStoreSnapshot? snapshot) + { + return Create(dataInfo, snapshot); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.ResultInfoGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryResultInfo : global::StrawberryShake.IOperationResultDataInfo + { + private readonly global::System.Collections.Generic.IReadOnlyCollection _entityIds; + private readonly global::System.UInt64 _version; + public IntrospectionQueryResultInfo(global::Foo.Bar.State.__SchemaData __schema, global::System.Collections.Generic.IReadOnlyCollection entityIds, global::System.UInt64 version) + { + this.__schema = __schema; + _entityIds = entityIds ?? throw new global::System.ArgumentNullException(nameof(entityIds)); + _version = version; + } + + /// + /// Access the current type schema of this server. + /// + public global::Foo.Bar.State.__SchemaData __schema + { + get; + } + + public global::System.Collections.Generic.IReadOnlyCollection EntityIds => _entityIds; + public global::System.UInt64 Version => _version; + public global::StrawberryShake.IOperationResultDataInfo WithVersion(global::System.UInt64 version) + { + return new IntrospectionQueryResultInfo(__schema, _entityIds, version); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.JsonResultBuilderGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class IntrospectionQueryBuilder : global::StrawberryShake.IOperationResultBuilder + { + private readonly global::StrawberryShake.IEntityStore _entityStore; + private readonly global::StrawberryShake.IEntityIdSerializer _idSerializer; + private readonly global::StrawberryShake.IOperationResultDataFactory _resultDataFactory; + private readonly global::StrawberryShake.Serialization.ILeafValueParser ___TypeKindParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _stringParser; + private readonly global::StrawberryShake.Serialization.ILeafValueParser _booleanParser; + public IntrospectionQueryBuilder(global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer idSerializer, global::StrawberryShake.IOperationResultDataFactory resultDataFactory, global::StrawberryShake.Serialization.ISerializerResolver serializerResolver) + { + _entityStore = entityStore ?? throw new global::System.ArgumentNullException(nameof(entityStore)); + _idSerializer = idSerializer ?? throw new global::System.ArgumentNullException(nameof(idSerializer)); + _resultDataFactory = resultDataFactory ?? throw new global::System.ArgumentNullException(nameof(resultDataFactory)); + ___TypeKindParser = serializerResolver.GetLeafValueParser("__TypeKind") ?? throw new global::System.ArgumentException("No serializer for type `__TypeKind` found."); + _stringParser = serializerResolver.GetLeafValueParser("String") ?? throw new global::System.ArgumentException("No serializer for type `String` found."); + _booleanParser = serializerResolver.GetLeafValueParser("Boolean") ?? throw new global::System.ArgumentException("No serializer for type `Boolean` found."); + } + + public global::StrawberryShake.IOperationResult Build(global::StrawberryShake.Response response) + { + (IIntrospectionQueryResult Result, IntrospectionQueryResultInfo Info)? data = null; + global::System.Collections.Generic.IReadOnlyList? errors = null; + if (response.Exception is null) + { + try + { + if (response.Body != null) + { + if (response.Body.RootElement.TryGetProperty("data", out global::System.Text.Json.JsonElement dataElement) && dataElement.ValueKind == global::System.Text.Json.JsonValueKind.Object) + { + data = BuildData(dataElement); + } + + if (response.Body.RootElement.TryGetProperty("errors", out global::System.Text.Json.JsonElement errorsElement)) + { + errors = global::StrawberryShake.Json.JsonErrorParser.ParseErrors(errorsElement); + } + } + } + catch (global::System.Exception ex) + { + errors = new global::StrawberryShake.IClientError[]{new global::StrawberryShake.ClientError(ex.Message, exception: ex, extensions: new global::System.Collections.Generic.Dictionary{{"body", response.Body?.RootElement.ToString()}})}; + } + } + else + { + errors = new global::StrawberryShake.IClientError[]{new global::StrawberryShake.ClientError(response.Exception.Message, exception: response.Exception, extensions: new global::System.Collections.Generic.Dictionary{{"body", response.Body?.RootElement.ToString()}})}; + } + + return new global::StrawberryShake.OperationResult(data?.Result, data?.Info, _resultDataFactory, errors); + } + + private (IIntrospectionQueryResult, IntrospectionQueryResultInfo) BuildData(global::System.Text.Json.JsonElement obj) + { + var entityIds = new global::System.Collections.Generic.HashSet(); + global::StrawberryShake.IEntityStoreSnapshot snapshot = default !; + _entityStore.Update(session => + { + snapshot = session.CurrentSnapshot; + }); + var resultInfo = new IntrospectionQueryResultInfo(DeserializeNonNullableIIntrospectionQuery___schema(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "__schema")), entityIds, snapshot.Version); + return (_resultDataFactory.Create(resultInfo), resultInfo); + } + + private global::Foo.Bar.State.__SchemaData DeserializeNonNullableIIntrospectionQuery___schema(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Schema", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__SchemaData(typename, queryType: DeserializeNonNullableIIntrospectionQuery___schema_QueryType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "queryType")), mutationType: DeserializeIIntrospectionQuery___schema_MutationType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "mutationType")), subscriptionType: DeserializeIIntrospectionQuery___schema_SubscriptionType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "subscriptionType")), types: DeserializeNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "types")), directives: DeserializeNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "directives"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_QueryType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.String? DeserializeString(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + + private global::Foo.Bar.State.__TypeData? DeserializeIIntrospectionQuery___schema_MutationType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData? DeserializeIIntrospectionQuery___schema_SubscriptionType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_TypesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Types.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types(child)); + } + + return __Types; + } + + private global::Foo.Bar.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), fields: DeserializeIIntrospectionQuery___schema_Types_FieldsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "fields")), inputFields: DeserializeIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "inputFields")), interfaces: DeserializeIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "interfaces")), enumValues: DeserializeIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "enumValues")), possibleTypes: DeserializeIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "possibleTypes"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.__TypeKind DeserializeNonNullable__TypeKind(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return ___TypeKindParser.Parse(obj.Value.GetString()!); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_FieldsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __Fields = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Fields.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields(child)); + } + + return __Fields; + } + + private global::Foo.Bar.State.__FieldData DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Field", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__FieldData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), args: DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "args")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), isDeprecated: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "isDeprecated")), deprecationReason: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "deprecationReason"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.String DeserializeNonNullableString(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _stringParser.Parse(obj.Value.GetString()!); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_ArgsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __InputValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Args(child)); + } + + return __InputValues; + } + + private global::Foo.Bar.State.__InputValueData DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Args(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__InputValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__InputValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), defaultValue: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "defaultValue"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData? DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData? DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData? DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType_OfType_OfType(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::Foo.Bar.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_Fields_Type(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Boolean DeserializeNonNullableBoolean(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + return _booleanParser.Parse(obj.Value.GetBoolean()!); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_InputFieldsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __InputValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields(child)); + } + + return __InputValues; + } + + private global::Foo.Bar.State.__InputValueData DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__InputValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__InputValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), defaultValue: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "defaultValue"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_InterfacesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Types.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_Interfaces(child)); + } + + return __Types; + } + + private global::Foo.Bar.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_Interfaces(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_EnumValuesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __EnumValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __EnumValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_EnumValues(child)); + } + + return __EnumValues; + } + + private global::Foo.Bar.State.__EnumValueData DeserializeNonNullableIIntrospectionQuery___schema_Types_EnumValues(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__EnumValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__EnumValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), isDeprecated: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "isDeprecated")), deprecationReason: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "deprecationReason"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList? DeserializeIIntrospectionQuery___schema_Types_PossibleTypesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + return null; + } + + var __Types = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Types.Add(DeserializeNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(child)); + } + + return __Types; + } + + private global::Foo.Bar.State.__TypeData DeserializeNonNullableIIntrospectionQuery___schema_Types_PossibleTypes(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Type", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__TypeData(typename, kind: DeserializeNonNullable__TypeKind(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "kind")), name: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), ofType: DeserializeIIntrospectionQuery___schema_Types_Interfaces_OfType(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "ofType"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_DirectivesNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __Directives = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __Directives.Add(DeserializeNonNullableIIntrospectionQuery___schema_Directives(child)); + } + + return __Directives; + } + + private global::Foo.Bar.State.__DirectiveData DeserializeNonNullableIIntrospectionQuery___schema_Directives(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__Directive", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__DirectiveData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), args: DeserializeNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "args")), onOperation: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "onOperation")), onFragment: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "onFragment")), onField: DeserializeNonNullableBoolean(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "onField"))); + } + + throw new global::System.NotSupportedException(); + } + + private global::System.Collections.Generic.IReadOnlyList DeserializeNonNullableIIntrospectionQuery___schema_Directives_ArgsNonNullableArray(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var __InputValues = new global::System.Collections.Generic.List(); + foreach (global::System.Text.Json.JsonElement child in obj.Value.EnumerateArray()) + { + __InputValues.Add(DeserializeNonNullableIIntrospectionQuery___schema_Directives_Args(child)); + } + + return __InputValues; + } + + private global::Foo.Bar.State.__InputValueData DeserializeNonNullableIIntrospectionQuery___schema_Directives_Args(global::System.Text.Json.JsonElement? obj) + { + if (!obj.HasValue) + { + throw new global::System.ArgumentNullException(); + } + + var typename = obj.Value.GetProperty("__typename").GetString(); + if (typename?.Equals("__InputValue", global::System.StringComparison.Ordinal) ?? false) + { + return new global::Foo.Bar.State.__InputValueData(typename, name: DeserializeNonNullableString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "name")), description: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "description")), type: DeserializeNonNullableIIntrospectionQuery___schema_Types_InputFields_Type(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "type")), defaultValue: DeserializeString(global::StrawberryShake.Json.JsonElementExtensions.GetPropertyOrNull(obj, "defaultValue"))); + } + + throw new global::System.NotSupportedException(); + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __SchemaData + { + public __SchemaData(global::System.String __typename, global::Foo.Bar.State.__TypeData? queryType = default !, global::Foo.Bar.State.__TypeData? mutationType = default !, global::Foo.Bar.State.__TypeData? subscriptionType = default !, global::System.Collections.Generic.IReadOnlyList? types = default !, global::System.Collections.Generic.IReadOnlyList? directives = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + QueryType = queryType; + MutationType = mutationType; + SubscriptionType = subscriptionType; + Types = types; + Directives = directives; + } + + public global::System.String __typename + { + get; + } + + ///The type that query operations will be rooted at. + public global::Foo.Bar.State.__TypeData? QueryType + { + get; + } + + ///If this server supports mutation, the type that mutation operations will be rooted at. + public global::Foo.Bar.State.__TypeData? MutationType + { + get; + } + + ///If this server support subscription, the type that subscription operations will be rooted at. + public global::Foo.Bar.State.__TypeData? SubscriptionType + { + get; + } + + ///A list of all types supported by this server. + public global::System.Collections.Generic.IReadOnlyList? Types + { + get; + } + + ///A list of all directives supported by this server. + public global::System.Collections.Generic.IReadOnlyList? Directives + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.Depending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __TypeData + { + public __TypeData(global::System.String __typename, global::System.String? name = default !, global::Foo.Bar.__TypeKind? kind = default !, global::System.String? description = default !, global::System.Collections.Generic.IReadOnlyList? fields = default !, global::System.Collections.Generic.IReadOnlyList? inputFields = default !, global::System.Collections.Generic.IReadOnlyList? interfaces = default !, global::System.Collections.Generic.IReadOnlyList? enumValues = default !, global::System.Collections.Generic.IReadOnlyList? possibleTypes = default !, global::Foo.Bar.State.__TypeData? ofType = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Kind = kind; + Description = description; + Fields = fields; + InputFields = inputFields; + Interfaces = interfaces; + EnumValues = enumValues; + PossibleTypes = possibleTypes; + OfType = ofType; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::Foo.Bar.__TypeKind? Kind + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Fields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? InputFields + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Interfaces + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? EnumValues + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? PossibleTypes + { + get; + } + + public global::Foo.Bar.State.__TypeData? OfType + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __DirectiveData + { + public __DirectiveData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::System.Collections.Generic.IReadOnlyList? args = default !, global::System.Boolean? onOperation = default !, global::System.Boolean? onFragment = default !, global::System.Boolean? onField = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + Args = args; + OnOperation = onOperation; + OnFragment = onFragment; + OnField = onField; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Args + { + get; + } + + public global::System.Boolean? OnOperation + { + get; + } + + public global::System.Boolean? OnFragment + { + get; + } + + public global::System.Boolean? OnField + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __FieldData + { + public __FieldData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::System.Collections.Generic.IReadOnlyList? args = default !, global::Foo.Bar.State.__TypeData? type = default !, global::System.Boolean? isDeprecated = default !, global::System.String? deprecationReason = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + Args = args; + Type = type; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Collections.Generic.IReadOnlyList? Args + { + get; + } + + public global::Foo.Bar.State.__TypeData? Type + { + get; + } + + public global::System.Boolean? IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __InputValueData + { + public __InputValueData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::Foo.Bar.State.__TypeData? type = default !, global::System.String? defaultValue = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + Type = type; + DefaultValue = defaultValue; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::Foo.Bar.State.__TypeData? Type + { + get; + } + + ///A GraphQL-formatted string representing the default value for this input value. + public global::System.String? DefaultValue + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.DataTypeGenerator + ///One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string. + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "0.0.0.0")] + public partial class __EnumValueData + { + public __EnumValueData(global::System.String __typename, global::System.String? name = default !, global::System.String? description = default !, global::System.Boolean? isDeprecated = default !, global::System.String? deprecationReason = default !) + { + this.__typename = __typename ?? throw new global::System.ArgumentNullException(nameof(__typename)); + Name = name; + Description = description; + IsDeprecated = isDeprecated; + DeprecationReason = deprecationReason; + } + + public global::System.String __typename + { + get; + } + + public global::System.String? Name + { + get; + } + + public global::System.String? Description + { + get; + } + + public global::System.Boolean? IsDeprecated + { + get; + } + + public global::System.String? DeprecationReason + { + get; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.EntityIdFactoryGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class FooClientEntityIdFactory : global::StrawberryShake.IEntityIdSerializer + { + private static readonly global::System.Text.Json.JsonWriterOptions _options = new global::System.Text.Json.JsonWriterOptions() + {Indented = false}; + public global::StrawberryShake.EntityId Parse(global::System.Text.Json.JsonElement obj) + { + global::System.String __typename = obj.GetProperty("__typename").GetString()!; + return __typename switch + { + _ => throw new global::System.NotSupportedException()} + + ; + } + + public global::System.String Format(global::StrawberryShake.EntityId entityId) + { + return entityId.Name switch + { + _ => throw new global::System.NotSupportedException()} + + ; + } + } + + // StrawberryShake.CodeGeneration.CSharp.Generators.StoreAccessorGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public partial class FooClientStoreAccessor : global::StrawberryShake.StoreAccessor + { + public FooClientStoreAccessor(global::StrawberryShake.IOperationStore operationStore, global::StrawberryShake.IEntityStore entityStore, global::StrawberryShake.IEntityIdSerializer entityIdSerializer, global::System.Collections.Generic.IEnumerable requestFactories, global::System.Collections.Generic.IEnumerable resultDataFactories): base(operationStore, entityStore, entityIdSerializer, requestFactories, resultDataFactories) + { + } + } +} + +namespace Microsoft.Extensions.DependencyInjection +{ + // StrawberryShake.CodeGeneration.CSharp.Generators.DependencyInjectionGenerator + [global::System.CodeDom.Compiler.GeneratedCode("StrawberryShake", "11.0.0")] + public static partial class FooClientServiceCollectionExtensions + { + public static global::StrawberryShake.IClientBuilder AddFooClient(this global::Microsoft.Extensions.DependencyInjection.IServiceCollection services, global::StrawberryShake.ExecutionStrategy strategy = global::StrawberryShake.ExecutionStrategy.NetworkOnly) + { + var serviceCollection = new global::Microsoft.Extensions.DependencyInjection.ServiceCollection(); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => + { + ConfigureClientDefault(sp, serviceCollection, strategy); + return new ClientServiceProvider(global::Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(serviceCollection)); + }); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::Foo.Bar.State.FooClientStoreAccessor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + return new global::StrawberryShake.ClientBuilder("FooClient", services, serviceCollection); + } + + private static global::Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureClientDefault(global::System.IServiceProvider parentServices, global::Microsoft.Extensions.DependencyInjection.ServiceCollection services, global::StrawberryShake.ExecutionStrategy strategy = global::StrawberryShake.ExecutionStrategy.NetworkOnly) + { + global::Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescriptorExtensions.TryAddSingleton(services, sp => new global::StrawberryShake.OperationStore(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => + { + var clientFactory = global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(parentServices); + return new global::StrawberryShake.Transport.Http.HttpConnection(() => clientFactory.CreateClient("FooClient")); + }); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => new global::StrawberryShake.Serialization.SerializerResolver(global::System.Linq.Enumerable.Concat(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(parentServices), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)))); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::Foo.Bar.State.IntrospectionQueryResultFactory>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton, global::Foo.Bar.State.IntrospectionQueryBuilder>(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton>(services, sp => new global::StrawberryShake.OperationExecutor(global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), () => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService>(sp), global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp), strategy)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services); + global::Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddSingleton(services, sp => global::Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(sp)); + return services; + } + + private class ClientServiceProvider : System.IServiceProvider, System.IDisposable + { + private readonly System.IServiceProvider _provider; + public ClientServiceProvider(System.IServiceProvider provider) + { + _provider = provider; + } + + public object? GetService(System.Type serviceType) + { + return _provider.GetService(serviceType); + } + + public void Dispose() + { + if (_provider is System.IDisposable d) + { + d.Dispose(); + } + } + } + } +} + +