// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@available(added=7)
library fuchsia.wlan.product.deprecatedconfiguration;

using fuchsia.net;

/// Represents error statuses returned by
/// [`fuchsia.wlan.product.deprecatedconfiguration/DeprecatedConfigurator.SuggestAccessPointMacAddress`]
type SuggestMacAddressError = strict enum {
    NOT_SUPPORTED = 1;
    INVALID_ARGUMENTS = 2;
};

// NOTE: This FIDL protocol is deprecated.  Please do not add new uses that depend on it.
/// Allows for the configuration of WLAN devices to support legacy applications.
@discoverable
closed protocol DeprecatedConfigurator {
    /// Suggests a MAC address for [`fuchsia.wlan.policy/AccessPointProvider`] to use when creating
    /// new soft access point interfaces and notifies when the request is complete.
    strict SuggestAccessPointMacAddress(struct {
        mac fuchsia.net.MacAddress;
    }) -> () error SuggestMacAddressError;
};
