/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 * 
 * Code generated by Microsoft (R) AutoRest Code Generator 0.16.0.0
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
// TODO: Include PageTemplateModels here too?? Probably
 */


/**
 * @class
 * Initializes a new instance of the DeploymentExtendedFilter class.
 * @constructor
 * Deployment filter.
 * @member {string} [provisioningState] Gets or sets the provisioning state.
 * 
 */
export interface DeploymentExtendedFilter {
    provisioningState?: string;
}

/**
 * @class
 * Initializes a new instance of the GenericResourceFilter class.
 * @constructor
 * Resource filter.
 * @member {string} [resourceType] Gets or sets the resource type.
 * 
 * @member {string} [tagname] Gets or sets the tag name.
 * 
 * @member {string} [tagvalue] Gets or sets the tag value.
 * 
 */
export interface GenericResourceFilter {
    resourceType?: string;
    tagname?: string;
    tagvalue?: string;
}

/**
 * @class
 * Initializes a new instance of the ResourceGroupFilter class.
 * @constructor
 * Resource group filter.
 * @member {string} [tagName] Gets or sets the tag name.
 * 
 * @member {string} [tagValue] Gets or sets the tag value.
 * 
 */
export interface ResourceGroupFilter {
    tagName?: string;
    tagValue?: string;
}

/**
 * @class
 * Initializes a new instance of the FeatureProperties class.
 * @constructor
 * Previewed feature information.
 * @member {string} [state] Gets or sets the state of the previewed feature.
 * 
 */
export interface FeatureProperties {
    state?: string;
}

/**
 * @class
 * Initializes a new instance of the FeatureResult class.
 * @constructor
 * Previewed feature information.
 * @member {string} [name] Gets or sets the name of the feature.
 * 
 * @member {object} [properties] Gets or sets the properties of the previewed
 * feature.
 * 
 * @member {string} [properties.state] Gets or sets the state of the previewed
 * feature.
 * 
 * @member {string} [id] Gets or sets the Id of the feature.
 * 
 * @member {string} [type] Gets or sets the type of the feature.
 * 
 */
export interface FeatureResult {
    name?: string;
    properties?: FeatureProperties;
    id?: string;
    type?: string;
}

/**
 * @class
 * Initializes a new instance of the Resource class.
 * @constructor
 * @member {string} [id] Resource Id
 * 
 * @member {string} [name] Resource name
 * 
 * @member {string} [type] Resource type
 * 
 * @member {string} location Resource location
 * 
 * @member {object} [tags] Resource tags
 * 
 */
export interface Resource extends BaseResource {
    id?: string;
    name?: string;
    type?: string;
    location: string;
    tags?: { [propertyName: string]: string };
}

/**
 * @class
 * Initializes a new instance of the SubResource class.
 * @constructor
 * @member {string} [id] Resource Id
 * 
 */
export interface SubResource extends BaseResource {
    id?: string;
}
