示例#1
0
        public AwsAmplifyConfig(AwsSettings awsSettings)
        {
            Auth = new auth
            {
                identityPoolId      = awsSettings["IdentityPoolId"].ToString(),
                region              = awsSettings["Region"].ToString(),
                identityPoolRegion  = awsSettings["Region"].ToString(),
                userPoolId          = awsSettings["UserPoolId"].ToString(),
                userPoolWebClientId = awsSettings["ClientId"].ToString(),
                mandatorySignIn     = false
            };

            API = new ApiSpec();
            var apiGateways = awsSettings["ApiGateways"] as Dictionary <string, AwsSettings.Api>;

            API.endpoints = new endpointSpec[apiGateways.Count];

            int i = 0;

            foreach (var kvp in apiGateways)
            {
                var api      = kvp.Value;
                var endpoint = new endpointSpec();
                endpoint.name = kvp.Key;
                var awshost = $"{api.Id}.{api.Service}.{awsSettings["Region"]}.{api.Host}";

                var uriBuilder = (api.Port == 443)
                    ? new UriBuilder(api.Scheme, awshost)
                    : new UriBuilder(api.Scheme, awshost, api.Port);

                var path = (!string.IsNullOrEmpty(api.Stage))
                    ? "/" + api.Stage
                        : "";

                endpoint.endpoint      = new Uri(uriBuilder.Uri, path).AbsoluteUri;
                endpoint.custom_header = $"#HeadersStatement-{api.SecurityLevel.ToString()}#";
                //switch(api.SecurityLevel)
                //{
                //    case AwsSettings.SecurityLevel.None:
                //        break;
                //    case AwsSettings.SecurityLevel.JWT:
                //        endpoint.custom_header = @"async () => { return { Authorization : `Bearer ${(await Auth.currentSession()).getIdToken.getJwtToken()}`}}";
                //        break;
                //    case AwsSettings.SecurityLevel.AwsSignatureVersion4:
                //        endpoint.custom_header = @"async () => { return { LzIdentity : `${(await Auth.currentSession()).getIdToken.getJwtToken()}`}}";
                //        break;
                //}

                API.endpoints[i++] = endpoint;
            }
        }
示例#2
0
        private static void OperationSpec(ApiSpec api, string httpMethod, int index, Action <OperationSpec> applyAssertions)
        {
            var operationSpec = api.Operations.Where(op => op.Method == httpMethod).ElementAt(index);

            applyAssertions(operationSpec);
        }
示例#3
0
        public SpecGen(ApiSpec spec)
        {
            base.ToStringHelper.FormatProvider = CultureInfo.InvariantCulture;

            this.SPEC = spec;

            mCaseCorrections["nodebalancer"]           = "NodeBalancer";
            mCaseCorrections["nodebalancers"]          = "NodeBalancers";
            mCaseCorrections["addprivate"]             = "AddPrivate";
            mCaseCorrections["addpublic"]              = "AddPublic";
            mCaseCorrections["setrdns"]                = "SetRDns";
            mCaseCorrections["linodeplans"]            = "LinodePlans";
            mCaseCorrections["webconsoletoken"]        = "WebConsoleToken";
            mCaseCorrections["estimateinvoice"]        = "EstimateInvoice";
            mCaseCorrections["updatecard"]             = "UpdateCard";
            mCaseCorrections["stackscript"]            = "StackScript";
            mCaseCorrections["stackscripts"]           = "StackScripts";
            mCaseCorrections["createfromstackscript"]  = "CreateFromStackScript";
            mCaseCorrections["createfromimage"]        = "CreateFromImage";
            mCaseCorrections["getapikey"]              = "GetApiKey";
            mCaseCorrections["createfromdistribution"] = "CreateFromDistribution";
            mCaseCorrections["paybalance"]             = "PayBalance";

            mReturnType["linode.job.list"]     = typeof(Job[]);
            mReturnType["avail.linodeplans"]   = typeof(Plan[]);
            mReturnType["avail.datacenters"]   = typeof(DataCenter[]);
            mReturnType["avail.distributions"] = typeof(DistributionResponse[]);
            mReturnType["avail.kernels"]       = typeof(KernelResponse[]);

            mReturnType["linode.boot"]     = typeof(JobIdResponse);
            mReturnType["linode.clone"]    = typeof(LinodeIdResponse);
            mReturnType["linode.create"]   = typeof(LinodeIdResponse);
            mReturnType["linode.delete"]   = typeof(LinodeIdResponse);
            mReturnType["linode.list"]     = typeof(Node[]);
            mReturnType["linode.reboot"]   = typeof(JobIdResponse);
            mReturnType["linode.shutdown"] = typeof(JobIdResponse);
            mReturnType["linode.update"]   = typeof(LinodeIdResponse);

            mReturnType["linode.config.create"] = typeof(ConfigIdResponse);
            mReturnType["linode.config.delete"] = typeof(ConfigIdResponse);
            mReturnType["linode.config.list"]   = typeof(ConfigResponse[]);
            mReturnType["linode.config.update"] = typeof(ConfigIdResponse);

            mReturnType["linode.disk.create"] = typeof(DiskIdResponse);
            mReturnType["linode.disk.createfromdistribution"] = typeof(DiskIdResponse);
            mReturnType["linode.disk.createfromimage"]        = typeof(DiskIdResponse);
            mReturnType["linode.disk.createfromstackscript"]  = typeof(DiskIdResponse);
            mReturnType["linode.disk.delete"]    = typeof(DiskIdResponse);
            mReturnType["linode.disk.duplicate"] = typeof(DiskIdResponse);
            mReturnType["linode.disk.imagize"]   = typeof(ImageIdResponse);
            mReturnType["linode.disk.list"]      = typeof(DiskResponse[]);
            mReturnType["linode.disk.resize"]    = typeof(DiskIdResponse);
            //mReturnType["linode.disk.update"] = typeof(); //This does not have a jobid?

            mReturnType["linode.ip.addprivate"] = typeof(IpAddressResponse);
            mReturnType["linode.ip.addpublic"]  = typeof(IpAddressResponse);
            mReturnType["linode.ip.list"]       = typeof(IpAddressListEntry[]);
            //mReturnType["linode.ip.setrdns"] = typeof();
            //mReturnType["linode.ip.swap"] = typeof();

            mReturnType["image.list"] = typeof(ImageResponse[]);

            mReturnType["user.getapikey"] = typeof(ApiKey);
        }
示例#4
0
        private void AssertApiOperationSpec(ApiSpec apiSpec, string httpMethod, Action <ApiOperationSpec> applyAssertions)
        {
            var operationSpec = apiSpec.operations.Single(op => op.httpMethod == httpMethod);

            applyAssertions(operationSpec);
        }