Billhighway Cloud API

<back to all web services

CacheStatsRq

The following routes are available for this service:
GET/devops/api/caches/{location}/stats
import 'package:servicestack/servicestack.dart';

// @Flags()
class CacheResult
{
    static const CacheResult None = const CacheResult._(0);
    static const CacheResult Miss = const CacheResult._(1);
    static const CacheResult Hit = const CacheResult._(2);
    static const CacheResult Put = const CacheResult._(4);
    static const CacheResult Deleted = const CacheResult._(8);
    static const CacheResult Cleared = const CacheResult._(16);
    static const CacheResult Added = const CacheResult._(32);
    static const CacheResult Updated = const CacheResult._(64);
    static const CacheResult Unavailable = const CacheResult._(128);
    static const CacheResult Expired = const CacheResult._(256);

    final int _value;
    const CacheResult._(this._value);
    int get value => _value;
    static List<CacheResult> get values => const [None,Miss,Hit,Put,Deleted,Cleared,Added,Updated,Unavailable,Expired];
}

class CacheLocation
{
    static const CacheLocation None = const CacheLocation._(0);
    static const CacheLocation OutOfProcess = const CacheLocation._(1);
    static const CacheLocation InProcess = const CacheLocation._(2);
    static const CacheLocation InContext = const CacheLocation._(3);

    final int _value;
    const CacheLocation._(this._value);
    int get value => _value;
    static List<CacheLocation> get values => const [None,OutOfProcess,InProcess,InContext];
}

class CacheKey implements IConvertible
{
    String? Region;
    String? BaseKey;
    String? Key;
    int? ExpirationSeconds;

    CacheKey({this.Region,this.BaseKey,this.Key,this.ExpirationSeconds});
    CacheKey.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Region = json['Region'];
        BaseKey = json['BaseKey'];
        Key = json['Key'];
        ExpirationSeconds = json['ExpirationSeconds'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Region': Region,
        'BaseKey': BaseKey,
        'Key': Key,
        'ExpirationSeconds': ExpirationSeconds
    };

    getTypeName() => "CacheKey";
    TypeContext? context = _ctx;
}

abstract class CacheResultBase
{
    CacheResult? Result;
    CacheLocation? Location;
    CacheKey? Key;

    CacheResultBase({this.Result,this.Location,this.Key});
    CacheResultBase.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Result = JsonConverters.fromJson(json['Result'],'CacheResult',context!);
        Location = JsonConverters.fromJson(json['Location'],'CacheLocation',context!);
        Key = JsonConverters.fromJson(json['Key'],'CacheKey',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Result': JsonConverters.toJson(Result,'CacheResult',context!),
        'Location': JsonConverters.toJson(Location,'CacheLocation',context!),
        'Key': JsonConverters.toJson(Key,'CacheKey',context!)
    };

    getTypeName() => "CacheResultBase";
    TypeContext? context = _ctx;
}

class CacheStat implements IConvertible
{
    String? Name;
    String? Value;

    CacheStat({this.Name,this.Value});
    CacheStat.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Value = json['Value'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Value': Value
    };

    getTypeName() => "CacheStat";
    TypeContext? context = _ctx;
}

class CacheStatResult extends CacheResultBase implements IConvertible
{
    List<CacheStat>? Statistics;
    bool? IsHit;

    CacheStatResult({this.Statistics,this.IsHit});
    CacheStatResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Statistics = JsonConverters.fromJson(json['Statistics'],'List<CacheStat>',context!);
        IsHit = json['IsHit'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Statistics': JsonConverters.toJson(Statistics,'List<CacheStat>',context!),
        'IsHit': IsHit
    });

    getTypeName() => "CacheStatResult";
    TypeContext? context = _ctx;
}

class CacheStatsRs implements IConvertible
{
    CacheStatResult? Statistics;

    CacheStatsRs({this.Statistics});
    CacheStatsRs.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Statistics = JsonConverters.fromJson(json['Statistics'],'CacheStatResult',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Statistics': JsonConverters.toJson(Statistics,'CacheStatResult',context!)
    };

    getTypeName() => "CacheStatsRs";
    TypeContext? context = _ctx;
}

class CacheStatsRq implements IConvertible
{
    String? location;

    CacheStatsRq({this.location});
    CacheStatsRq.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        location = json['location'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'location': location
    };

    getTypeName() => "CacheStatsRq";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'devapi.billhighway.com', types: <String, TypeInfo> {
    'CacheResult': TypeInfo(TypeOf.Enum, enumValues:CacheResult.values),
    'CacheLocation': TypeInfo(TypeOf.Enum, enumValues:CacheLocation.values),
    'CacheKey': TypeInfo(TypeOf.Class, create:() => CacheKey()),
    'CacheResultBase': TypeInfo(TypeOf.AbstractClass),
    'CacheStat': TypeInfo(TypeOf.Class, create:() => CacheStat()),
    'CacheStatResult': TypeInfo(TypeOf.Class, create:() => CacheStatResult()),
    'List<CacheStat>': TypeInfo(TypeOf.Class, create:() => <CacheStat>[]),
    'CacheStatsRs': TypeInfo(TypeOf.Class, create:() => CacheStatsRs()),
    'CacheStatsRq': TypeInfo(TypeOf.Class, create:() => CacheStatsRq()),
});

Dart CacheStatsRq DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /devops/api/caches/{location}/stats HTTP/1.1 
Host: devapi.billhighway.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Statistics: 
	{
		Statistics: 
		[
			{
				Name: String,
				Value: String
			}
		],
		IsHit: False,
		Result: 0,
		Location: 0
	}
}