using System; namespace MediaBrowser.Model.Services { /// /// Identifies a single API endpoint. /// [AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)] public class ApiMemberAttribute : Attribute { /// /// Gets or sets verb to which applies attribute. By default applies to all verbs. /// public string Verb { get; set; } /// /// Gets or sets parameter type: It can be only one of the following: path, query, body, form, or header. /// public string ParameterType { get; set; } /// /// Gets or sets unique name for the parameter. Each name must be unique, even if they are associated with different paramType values. /// /// /// /// Other notes on the name field: /// If paramType is body, the name is used only for UI and codegeneration. /// If paramType is path, the name field must correspond to the associated path segment from the path field in the api object. /// If paramType is query, the name field corresponds to the query param name. /// /// public string Name { get; set; } /// /// Gets or sets the human-readable description for the parameter. /// public string Description { get; set; } /// /// For path, query, and header paramTypes, this field must be a primitive. For body, this can be a complex or container datatype. /// public string DataType { get; set; } /// /// For path, this is always true. Otherwise, this field tells the client whether or not the field must be supplied. /// public bool IsRequired { get; set; } /// /// For query params, this specifies that a comma-separated list of values can be passed to the API. For path and body types, this field cannot be true. /// public bool AllowMultiple { get; set; } /// /// Gets or sets route to which applies attribute, matches using StartsWith. By default applies to all routes. /// public string Route { get; set; } /// /// Whether to exclude this property from being included in the ModelSchema /// public bool ExcludeInSchema { get; set; } } }