/** filename: README.md **/
# Welcome
Welcome to your new {{&platformConfig.name}} SDK!


## Installation
To use this SDK, you should copy the {{&sdkname}} directory in its entirety in to the appropriate place within your {{&platformConfig.name}} project.

Then, import a particular model you wish to use: 

    #import "{{&sdknameLower}}/User.h"


## Usage
Once you have it imported, you can require your main SDK file to get models, endpoints, and change configuration at runtime:

    [{{&sdkname}} setPort:[NSNumber numberWithInt:8080]];
    // [{{&sdkname}} setDomain:@"http://your.domain.com"];
{{#authByBasic}}
    {{#config.apikey}}
    // Basic Auth.
    [{{&sdkname}} setAuthorization:@"{{&config.apikey}}"];
    {{/config.apikey}}
    {{#config.apikey_production}}
    // Production Basic Auth.
    [{{&sdkname}} setAuthorization:@"{{&config.apikey_production}}"];
    {{/config.apikey_production}}
    {{#config.apikey_development}}
    // Development Basic Auth.
    [{{&sdkname}} setAuthorization:@"{{&config.apikey_development}}"];
    {{/config.apikey_development}}
{{/authByBasic}}
{{#authByAPIKey}}
    {{#config.apikey}}
    // API Key.
    [{{&sdkname}} setAPIKey:@"{{&config.apikey}}"];
    {{/config.apikey}}
    {{#config.apikey_production}}
    // Production API Key.
    [{{&sdkname}} setAPIKey:@"{{&config.apikey_production}}"];
    {{/config.apikey_production}}
    {{#config.apikey_development}}
    // Development API Key.
    [{{&sdkname}} setAPIKey:@"{{&config.apikey_development}}"];
    {{/config.apikey_development}}
{{/authByAPIKey}}
    // [{{&sdkname}} setTimeout:[NSNumber numberWithDouble:30]];
    
    [User create:[NSDictionary dictionaryWithObjectsAndKeys:
                  @"Nolan", @"first_name",
                  @"Wright", @"last_name",
                  nil] with:^(NSError *error, NSHTTPURLResponse *response) {
        NSLog(@"Created at URL: %@", [[response allHeaderFields] valueForKey:@"Location"]);
    }];
    
    [User findAll:^(NSError *error, NSArray<User *> *result, NSHTTPURLResponse *response) {
        for (User *user in result) {
            NSLog(@"%@: %@ %@", user.ID, user.FirstName, user.LastName);
        }
    }];

{{&securityPluginREADME}}


## Caching
The client SDK can cache GET results for quick retrieval later using various strategies. By default, it doesn't do
any caching. But you can change that very easily:

    // For everything:
    [{{&sdkname}} setCachePolicyType:CachePolicyCacheElseNetwork];
    [{{&sdkname}} setCachePolicyDuration:[NSNumber numberWithLong:60 * 60 * 1000]];
    
    // For an {{&sdkname}} model:
    [User setCachePolicyType:CachePolicyCacheElseNetwork];

{{> CachingStrategies.md}}
