AIM Web Services

<back to all web services

SerialDetailRequest

SerialDetail
Requires active-e Inventory Service

The following routes are available for this service:
POST, GET/api/SerialDetail
import 'package:servicestack/servicestack.dart';

// @DataContract
class BaseRequest implements IConvertible
{
    /**
    * This is your AIM API Key provided by Tri-Tech
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="Header")
    String? ApiKey;

    /**
    * The OAuthToken token return by AeServices30
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="The OAuthToken token return by AeServices30", IsRequired=true, Name="OAuthToken", ParameterType="Header")
    String? OAuthToken;

    /**
    * The Device ID of the Mobile Device. Not used for non-mobile devices.
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="The Device ID of the Mobile Device. Not used for non-mobile devices.", Name="DeviceId", ParameterType="Header")
    String? DeviceId;

    /**
    * An identifier for your integration
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="An identifier for your integration", IsRequired=true, Name="AppId", ParameterType="Header")
    String? AppId;

    BaseRequest({this.ApiKey,this.OAuthToken,this.DeviceId,this.AppId});
    BaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ApiKey = json['ApiKey'];
        OAuthToken = json['OAuthToken'];
        DeviceId = json['DeviceId'];
        AppId = json['AppId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ApiKey': ApiKey,
        'OAuthToken': OAuthToken,
        'DeviceId': DeviceId,
        'AppId': AppId
    };

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

// @DataContract
class BaseSecureRequest extends BaseRequest implements IConvertible
{
    /**
    * The Login Token return by the Security API. Required for secured calls.
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="The Login Token return by the Security API. Required for secured calls.", Name="Token", ParameterType="Header")
    String? Token;

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

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

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Token': Token
    });

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

// @DataContract
class BaseResponseResult implements IConvertible
{
    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
    String? StatusCode;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
    String? Login;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
    String? ErrorCode;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
    String? ErrorDisplayText;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
    String? ErrorMessage;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
    String? DomainName;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
    String? IpAddress;

    BaseResponseResult({this.StatusCode,this.Login,this.ErrorCode,this.ErrorDisplayText,this.ErrorMessage,this.DomainName,this.IpAddress});
    BaseResponseResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        StatusCode = json['StatusCode'];
        Login = json['Login'];
        ErrorCode = json['ErrorCode'];
        ErrorDisplayText = json['ErrorDisplayText'];
        ErrorMessage = json['ErrorMessage'];
        DomainName = json['DomainName'];
        IpAddress = json['IpAddress'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'StatusCode': StatusCode,
        'Login': Login,
        'ErrorCode': ErrorCode,
        'ErrorDisplayText': ErrorDisplayText,
        'ErrorMessage': ErrorMessage,
        'DomainName': DomainName,
        'IpAddress': IpAddress
    };

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

// @DataContract
class BaseResponse implements IConvertible
{
    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
    BaseResponseResult? Status;

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

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

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

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

// @DataContract
class InventoryDetailAttribute implements IConvertible
{
    // @DataMember
    String? Name;

    // @DataMember
    String? Value;

    // @DataMember
    int? Priority;

    /**
    * 1 is 'Don't Send to Web', 2 is 'Send To Web'
    */
    // @DataMember
    // @ApiMember(DataType="int", Description="1 is 'Don't Send to Web', 2 is 'Send To Web'", Name="WebType", ParameterType="query")
    int? WebType;

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

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

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

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

// @DataContract
class ImageInfo implements IConvertible
{
    // @DataMember
    String? Url;

    // @DataMember
    String? ImageStream;

    // @DataMember
    String? ImageSize;

    // @DataMember
    String? ErrorMessage;

    // @DataMember
    int? UriPk;

    ImageInfo({this.Url,this.ImageStream,this.ImageSize,this.ErrorMessage,this.UriPk});
    ImageInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Url = json['Url'];
        ImageStream = json['ImageStream'];
        ImageSize = json['ImageSize'];
        ErrorMessage = json['ErrorMessage'];
        UriPk = json['UriPk'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Url': Url,
        'ImageStream': ImageStream,
        'ImageSize': ImageSize,
        'ErrorMessage': ErrorMessage,
        'UriPk': UriPk
    };

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

// @DataContract
class InventoryDetailBySerial implements IConvertible
{
    // @DataMember
    int? SasPk;

    // @DataMember
    String? Serial;

    // @DataMember
    double? Retail;

    // @DataMember
    double? OurPrice;

    // @DataMember
    double? SalePrice;

    // @DataMember
    String? Status;

    // @DataMember
    String? SaleInfo;

    // @DataMember
    double? PriceA;

    // @DataMember
    double? PriceB;

    // @DataMember
    double? PriceC;

    // @DataMember
    double? MinPrice;

    // @DataMember
    double? ActiveEPrice;

    // @DataMember
    bool? AllowPriceChange;

    // @DataMember
    double? Cost;

    // @DataMember
    double? WeightedCost;

    // @DataMember
    String? Notes;

    // @DataMember
    List<InventoryDetailAttribute>? Attributes;

    // @DataMember
    List<ImageInfo>? Images;

    // @DataMember
    bool? HasImages;

    // @DataMember
    bool? IsActiveeHoldback;

    // @DataMember
    int? CustomerAcct;

    // @DataMember
    bool? AvailableForSTR;

    InventoryDetailBySerial({this.SasPk,this.Serial,this.Retail,this.OurPrice,this.SalePrice,this.Status,this.SaleInfo,this.PriceA,this.PriceB,this.PriceC,this.MinPrice,this.ActiveEPrice,this.AllowPriceChange,this.Cost,this.WeightedCost,this.Notes,this.Attributes,this.Images,this.HasImages,this.IsActiveeHoldback,this.CustomerAcct,this.AvailableForSTR});
    InventoryDetailBySerial.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SasPk = json['SasPk'];
        Serial = json['Serial'];
        Retail = JsonConverters.toDouble(json['Retail']);
        OurPrice = JsonConverters.toDouble(json['OurPrice']);
        SalePrice = JsonConverters.toDouble(json['SalePrice']);
        Status = json['Status'];
        SaleInfo = json['SaleInfo'];
        PriceA = JsonConverters.toDouble(json['PriceA']);
        PriceB = JsonConverters.toDouble(json['PriceB']);
        PriceC = JsonConverters.toDouble(json['PriceC']);
        MinPrice = JsonConverters.toDouble(json['MinPrice']);
        ActiveEPrice = JsonConverters.toDouble(json['ActiveEPrice']);
        AllowPriceChange = json['AllowPriceChange'];
        Cost = JsonConverters.toDouble(json['Cost']);
        WeightedCost = JsonConverters.toDouble(json['WeightedCost']);
        Notes = json['Notes'];
        Attributes = JsonConverters.fromJson(json['Attributes'],'List<InventoryDetailAttribute>',context!);
        Images = JsonConverters.fromJson(json['Images'],'List<ImageInfo>',context!);
        HasImages = json['HasImages'];
        IsActiveeHoldback = json['IsActiveeHoldback'];
        CustomerAcct = json['CustomerAcct'];
        AvailableForSTR = json['AvailableForSTR'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SasPk': SasPk,
        'Serial': Serial,
        'Retail': Retail,
        'OurPrice': OurPrice,
        'SalePrice': SalePrice,
        'Status': Status,
        'SaleInfo': SaleInfo,
        'PriceA': PriceA,
        'PriceB': PriceB,
        'PriceC': PriceC,
        'MinPrice': MinPrice,
        'ActiveEPrice': ActiveEPrice,
        'AllowPriceChange': AllowPriceChange,
        'Cost': Cost,
        'WeightedCost': WeightedCost,
        'Notes': Notes,
        'Attributes': JsonConverters.toJson(Attributes,'List<InventoryDetailAttribute>',context!),
        'Images': JsonConverters.toJson(Images,'List<ImageInfo>',context!),
        'HasImages': HasImages,
        'IsActiveeHoldback': IsActiveeHoldback,
        'CustomerAcct': CustomerAcct,
        'AvailableForSTR': AvailableForSTR
    };

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

// @DataContract
class SerialDetailResponse extends BaseResponse implements IConvertible
{
    // @DataMember
    int? SasPk;

    // @DataMember
    String? Serial;

    // @DataMember
    int? SaqPk;

    // @DataMember
    int? LocPk;

    // @DataMember
    String? Location;

    // @DataMember
    int? SkuPk;

    // @DataMember
    String? SKU;

    // @DataMember
    int? SadPk;

    // @DataMember
    String? Model;

    // @DataMember
    InventoryDetailBySerial? Details;

    SerialDetailResponse({this.SasPk,this.Serial,this.SaqPk,this.LocPk,this.Location,this.SkuPk,this.SKU,this.SadPk,this.Model,this.Details});
    SerialDetailResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        SasPk = json['SasPk'];
        Serial = json['Serial'];
        SaqPk = json['SaqPk'];
        LocPk = json['LocPk'];
        Location = json['Location'];
        SkuPk = json['SkuPk'];
        SKU = json['SKU'];
        SadPk = json['SadPk'];
        Model = json['Model'];
        Details = JsonConverters.fromJson(json['Details'],'InventoryDetailBySerial',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'SasPk': SasPk,
        'Serial': Serial,
        'SaqPk': SaqPk,
        'LocPk': LocPk,
        'Location': Location,
        'SkuPk': SkuPk,
        'SKU': SKU,
        'SadPk': SadPk,
        'Model': Model,
        'Details': JsonConverters.toJson(Details,'InventoryDetailBySerial',context!)
    });

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

/**
* SerialDetailRequires active-e Inventory Service
*/
// @DataContract
class SerialDetailRequest extends BaseSecureRequest implements IConvertible
{
    /**
    * The PK being used for lookup. Do not use if Serial is passed in.
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="The PK being used for lookup. Do not use if Serial is passed in.", Format="int64", Name="Pk", ParameterType="query")
    int? Pk;

    /**
    * The Serial# being used for lookup. Do not use if Pk is passed in.
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="The Serial# being used for lookup. Do not use if Pk is passed in.", Name="Serial", ParameterType="query")
    String? Serial;

    // @DataMember
    bool? SkipImages;

    /**
    * If sent, the Customer Acct will be used for customer specific pricing.
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="If sent, the Customer Acct will be used for customer specific pricing.", Format="int32", Name="CustomerAcct", ParameterType="query")
    int? CustomerAcct;

    SerialDetailRequest({this.Pk,this.Serial,this.SkipImages,this.CustomerAcct});
    SerialDetailRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Pk = json['Pk'];
        Serial = json['Serial'];
        SkipImages = json['SkipImages'];
        CustomerAcct = json['CustomerAcct'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Pk': Pk,
        'Serial': Serial,
        'SkipImages': SkipImages,
        'CustomerAcct': CustomerAcct
    });

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

TypeContext _ctx = TypeContext(library: 'active_ewebservice.biz', types: <String, TypeInfo> {
    'BaseRequest': TypeInfo(TypeOf.Class, create:() => BaseRequest()),
    'BaseSecureRequest': TypeInfo(TypeOf.Class, create:() => BaseSecureRequest()),
    'BaseResponseResult': TypeInfo(TypeOf.Class, create:() => BaseResponseResult()),
    'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
    'InventoryDetailAttribute': TypeInfo(TypeOf.Class, create:() => InventoryDetailAttribute()),
    'ImageInfo': TypeInfo(TypeOf.Class, create:() => ImageInfo()),
    'InventoryDetailBySerial': TypeInfo(TypeOf.Class, create:() => InventoryDetailBySerial()),
    'List<InventoryDetailAttribute>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailAttribute>[]),
    'List<ImageInfo>': TypeInfo(TypeOf.Class, create:() => <ImageInfo>[]),
    'SerialDetailResponse': TypeInfo(TypeOf.Class, create:() => SerialDetailResponse()),
    'SerialDetailRequest': TypeInfo(TypeOf.Class, create:() => SerialDetailRequest()),
});

Dart SerialDetailRequest DTOs

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

HTTP + XML

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

POST /api/SerialDetail HTTP/1.1 
Host: active-ewebservice.biz 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<SerialDetailRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AIM.WebService">
  <ApiKey>String</ApiKey>
  <AppId>String</AppId>
  <DeviceId>String</DeviceId>
  <OAuthToken>String</OAuthToken>
  <Token>String</Token>
  <CustomerAcct>0</CustomerAcct>
  <Pk>0</Pk>
  <Serial>String</Serial>
  <SkipImages>false</SkipImages>
</SerialDetailRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<SerialDetailResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AIM.WebService">
  <Status>
    <DomainName>String</DomainName>
    <ErrorCode>String</ErrorCode>
    <ErrorDisplayText>String</ErrorDisplayText>
    <ErrorMessage>String</ErrorMessage>
    <IpAddress>String</IpAddress>
    <Login>String</Login>
    <StatusCode>String</StatusCode>
  </Status>
  <Details i:nil="true" />
  <LocPk>0</LocPk>
  <Location>String</Location>
  <Model>String</Model>
  <SKU>String</SKU>
  <SadPk>0</SadPk>
  <SaqPk>0</SaqPk>
  <SasPk>0</SasPk>
  <Serial>String</Serial>
  <SkuPk>0</SkuPk>
</SerialDetailResponse>