import { INodeProperties } from 'n8n-workflow';

/**
 * Parameters for getSwitchBandwidthUsage operation
 */
export const getSwitchBandwidthUsageDescription: INodeProperties[] = [
	{
		displayName: 'Filter Type',
		name: 'filterType',
		type: 'options',
		options: [
			{ name: 'Group', value: 'group' },
			{ name: 'Label', value: 'label' },
			{ name: 'Serial', value: 'serial' },
			{ name: 'Stack ID', value: 'stack_id' },
		],
		default: 'serial',
		description: 'Choose how to filter the switches',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
			},
		},
	},
	{
		displayName: 'Group',
		name: 'group',
		type: 'string',
		default: '',
		description: 'Group name to filter by',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
				filterType: ['group'],
			},
		},
	},
	{
		displayName: 'Label',
		name: 'label',
		type: 'string',
		default: '',
		description: 'Label name to filter by',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
				filterType: ['label'],
			},
		},
	},
	{
		displayName: 'Serial',
		name: 'serial',
		type: 'string',
		default: '',
		description: 'Switch serial number to filter by',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
				filterType: ['serial'],
			},
		},
	},
	{
		displayName: 'Stack ID',
		name: 'stack_id',
		type: 'string',
		default: '',
		description: 'Switch stack ID to filter by',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
				filterType: ['stack_id'],
			},
		},
	},
	{
		displayName: 'From',
		name: 'from_timestamp',
		type: 'dateTime',
		default: '',
		description: 'Start time for data retrieval (defaults to current time minus 3 hours)',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
			},
		},
	},
	{
		displayName: 'To',
		name: 'to_timestamp',
		type: 'dateTime',
		default: '',
		description: 'End time for data retrieval (defaults to current time)',
		displayOptions: {
			show: {
				operation: ['getSwitchBandwidthUsage'],
				resource: ['switch'],
				domain: ['monitoring'],
			},
		},
	},
];
