/**
 * Azure Deviceupdate API
 *
 * Generated from the Azure REST API specs.
 * DO NOT EDIT - regenerate with: bun run generate
 */
import * as Schema from "effect/Schema";
import { API } from "../client.js";
import * as T from "../traits.js";
// Input Schema
export const AccountsCreateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "PUT",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}",
}));
// Output Schema
export const AccountsCreateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Creates or updates Account.
 */
export const AccountsCreate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AccountsCreateInput,
    outputSchema: AccountsCreateOutput,
}));
// Input Schema
export const AccountsDeleteInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "DELETE",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}",
}));
// Output Schema
export const AccountsDeleteOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Deletes account.
 */
export const AccountsDelete = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AccountsDeleteInput,
    outputSchema: AccountsDeleteOutput,
}));
// Input Schema
export const AccountsGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}",
}));
// Output Schema
export const AccountsGetOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Returns account details for the given account name.
 */
export const AccountsGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AccountsGetInput,
    outputSchema: AccountsGetOutput,
}));
// Input Schema
export const AccountsListByResourceGroupInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts",
}));
// Output Schema
export const AccountsListByResourceGroupOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    nextLink: Schema.optional(Schema.String),
    value: Schema.optional(Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    }))),
});
// The operation
/**
 * Returns list of Accounts.
 */
export const AccountsListByResourceGroup = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AccountsListByResourceGroupInput,
    outputSchema: AccountsListByResourceGroupOutput,
}));
// Input Schema
export const AccountsListBySubscriptionInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.DeviceUpdate/accounts",
}));
// Output Schema
export const AccountsListBySubscriptionOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    nextLink: Schema.optional(Schema.String),
    value: Schema.optional(Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    }))),
});
// The operation
/**
 * Returns list of Accounts.
 */
export const AccountsListBySubscription = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AccountsListBySubscriptionInput,
    outputSchema: AccountsListBySubscriptionOutput,
}));
// Input Schema
export const AccountsUpdateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "PATCH",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}",
}));
// Output Schema
export const AccountsUpdateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Updates account's patchable properties
 */
export const AccountsUpdate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AccountsUpdateInput,
    outputSchema: AccountsUpdateOutput,
}));
// Input Schema
export const CheckNameAvailabilityInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.DeviceUpdate/checknameavailability",
}));
// Output Schema
export const CheckNameAvailabilityOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    nameAvailable: Schema.optional(Schema.Boolean),
    reason: Schema.optional(Schema.Literals(["Invalid", "AlreadyExists"])),
    message: Schema.optional(Schema.String),
});
// The operation
/**
 * Checks ADU resource name availability.
 * @param name - The name of the resource for which availability needs to be checked.
 * @param type - The resource type.
 */
export const CheckNameAvailability = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: CheckNameAvailabilityInput,
    outputSchema: CheckNameAvailabilityOutput,
}));
// Input Schema
export const InstancesCreateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "PUT",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/instances/{instanceName}",
}));
// Output Schema
export const InstancesCreateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Creates or updates instance.
 */
export const InstancesCreate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: InstancesCreateInput,
    outputSchema: InstancesCreateOutput,
}));
// Input Schema
export const InstancesDeleteInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "DELETE",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/instances/{instanceName}",
}));
// Output Schema
export const InstancesDeleteOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Deletes instance.
 */
export const InstancesDelete = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: InstancesDeleteInput,
    outputSchema: InstancesDeleteOutput,
}));
// Input Schema
export const InstancesGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/instances/{instanceName}",
}));
// Output Schema
export const InstancesGetOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Returns instance details for the given instance and account name.
 */
export const InstancesGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: InstancesGetInput,
    outputSchema: InstancesGetOutput,
}));
// Input Schema
export const InstancesListByAccountInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/instances",
}));
// Output Schema
export const InstancesListByAccountOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    nextLink: Schema.optional(Schema.String),
    value: Schema.optional(Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    }))),
});
// The operation
/**
 * Returns instances for the given account name.
 */
export const InstancesListByAccount = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: InstancesListByAccountInput,
    outputSchema: InstancesListByAccountOutput,
}));
// Input Schema
export const InstancesUpdateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "PATCH",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/instances/{instanceName}",
}));
// Output Schema
export const InstancesUpdateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Updates instance's tags.
 */
export const InstancesUpdate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: InstancesUpdateInput,
    outputSchema: InstancesUpdateOutput,
}));
// Input Schema
export const OperationsListInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/providers/Microsoft.DeviceUpdate/operations",
}));
// Output Schema
export const OperationsListOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.optional(Schema.Array(Schema.Struct({
        name: Schema.optional(Schema.String),
        isDataAction: Schema.optional(Schema.Boolean),
        display: Schema.optional(Schema.Struct({
            provider: Schema.optional(Schema.String),
            resource: Schema.optional(Schema.String),
            operation: Schema.optional(Schema.String),
            description: Schema.optional(Schema.String),
        })),
        origin: Schema.optional(Schema.Literals(["user", "system", "user,system"])),
        actionType: Schema.optional(Schema.Literals(["Internal"])),
    }))),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * Returns list of operations for Microsoft.DeviceUpdate resource provider.
 */
export const OperationsList = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OperationsListInput,
    outputSchema: OperationsListOutput,
}));
// Input Schema
export const PrivateEndpointConnectionProxiesCreateOrUpdateInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "PUT",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnectionProxies/{privateEndpointConnectionProxyId}",
}));
// Output Schema
export const PrivateEndpointConnectionProxiesCreateOrUpdateOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    eTag: Schema.optional(Schema.String),
    remotePrivateEndpoint: Schema.optional(Schema.Struct({
        id: Schema.optional(Schema.String),
        location: Schema.optional(Schema.String),
        immutableSubscriptionId: Schema.optional(Schema.String),
        immutableResourceId: Schema.optional(Schema.String),
        vnetTrafficTag: Schema.optional(Schema.String),
        manualPrivateLinkServiceConnections: Schema.optional(Schema.Array(Schema.Struct({
            name: Schema.optional(Schema.String),
            groupIds: Schema.optional(Schema.Array(Schema.String)),
            requestMessage: Schema.optional(Schema.String),
        }))),
        privateLinkServiceConnections: Schema.optional(Schema.Array(Schema.Struct({
            name: Schema.optional(Schema.String),
            groupIds: Schema.optional(Schema.Array(Schema.String)),
            requestMessage: Schema.optional(Schema.String),
        }))),
        privateLinkServiceProxies: Schema.optional(Schema.Array(Schema.Struct({
            id: Schema.optional(Schema.String),
            remotePrivateLinkServiceConnectionState: Schema.optional(Schema.Struct({
                status: Schema.optional(Schema.Literals(["Pending", "Approved", "Rejected"])),
                description: Schema.optional(Schema.String),
                actionsRequired: Schema.optional(Schema.String),
            })),
            remotePrivateEndpointConnection: Schema.optional(Schema.Struct({
                id: Schema.optional(Schema.String),
            })),
            groupConnectivityInformation: Schema.optional(Schema.Array(Schema.Struct({
                groupId: Schema.optional(Schema.String),
                memberName: Schema.optional(Schema.String),
                customerVisibleFqdns: Schema.optional(Schema.Array(Schema.String)),
                internalFqdn: Schema.optional(Schema.String),
                redirectMapId: Schema.optional(Schema.String),
                privateLinkServiceArmRegion: Schema.optional(Schema.String),
            }))),
        }))),
        connectionDetails: Schema.optional(Schema.Array(Schema.Struct({
            id: Schema.optional(Schema.String),
            privateIpAddress: Schema.optional(Schema.String),
            linkIdentifier: Schema.optional(Schema.String),
            groupId: Schema.optional(Schema.String),
            memberName: Schema.optional(Schema.String),
        }))),
    })),
    status: Schema.optional(Schema.String),
});
// The operation
/**
 * (INTERNAL - DO NOT USE) Creates or updates the specified private endpoint connection proxy resource associated with the device update account.
 */
export const PrivateEndpointConnectionProxiesCreateOrUpdate = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionProxiesCreateOrUpdateInput,
    outputSchema: PrivateEndpointConnectionProxiesCreateOrUpdateOutput,
}));
// Input Schema
export const PrivateEndpointConnectionProxiesDeleteInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "DELETE",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnectionProxies/{privateEndpointConnectionProxyId}",
}));
// Output Schema
export const PrivateEndpointConnectionProxiesDeleteOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * (INTERNAL - DO NOT USE) Deletes the specified private endpoint connection proxy associated with the device update account.
 */
export const PrivateEndpointConnectionProxiesDelete = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionProxiesDeleteInput,
    outputSchema: PrivateEndpointConnectionProxiesDeleteOutput,
}));
// Input Schema
export const PrivateEndpointConnectionProxiesGetInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnectionProxies/{privateEndpointConnectionProxyId}",
}));
// Output Schema
export const PrivateEndpointConnectionProxiesGetOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    eTag: Schema.optional(Schema.String),
    remotePrivateEndpoint: Schema.optional(Schema.Struct({
        id: Schema.optional(Schema.String),
        location: Schema.optional(Schema.String),
        immutableSubscriptionId: Schema.optional(Schema.String),
        immutableResourceId: Schema.optional(Schema.String),
        vnetTrafficTag: Schema.optional(Schema.String),
        manualPrivateLinkServiceConnections: Schema.optional(Schema.Array(Schema.Struct({
            name: Schema.optional(Schema.String),
            groupIds: Schema.optional(Schema.Array(Schema.String)),
            requestMessage: Schema.optional(Schema.String),
        }))),
        privateLinkServiceConnections: Schema.optional(Schema.Array(Schema.Struct({
            name: Schema.optional(Schema.String),
            groupIds: Schema.optional(Schema.Array(Schema.String)),
            requestMessage: Schema.optional(Schema.String),
        }))),
        privateLinkServiceProxies: Schema.optional(Schema.Array(Schema.Struct({
            id: Schema.optional(Schema.String),
            remotePrivateLinkServiceConnectionState: Schema.optional(Schema.Struct({
                status: Schema.optional(Schema.Literals(["Pending", "Approved", "Rejected"])),
                description: Schema.optional(Schema.String),
                actionsRequired: Schema.optional(Schema.String),
            })),
            remotePrivateEndpointConnection: Schema.optional(Schema.Struct({
                id: Schema.optional(Schema.String),
            })),
            groupConnectivityInformation: Schema.optional(Schema.Array(Schema.Struct({
                groupId: Schema.optional(Schema.String),
                memberName: Schema.optional(Schema.String),
                customerVisibleFqdns: Schema.optional(Schema.Array(Schema.String)),
                internalFqdn: Schema.optional(Schema.String),
                redirectMapId: Schema.optional(Schema.String),
                privateLinkServiceArmRegion: Schema.optional(Schema.String),
            }))),
        }))),
        connectionDetails: Schema.optional(Schema.Array(Schema.Struct({
            id: Schema.optional(Schema.String),
            privateIpAddress: Schema.optional(Schema.String),
            linkIdentifier: Schema.optional(Schema.String),
            groupId: Schema.optional(Schema.String),
            memberName: Schema.optional(Schema.String),
        }))),
    })),
    status: Schema.optional(Schema.String),
});
// The operation
/**
 * (INTERNAL - DO NOT USE) Get the specified private endpoint connection proxy associated with the device update account.
 */
export const PrivateEndpointConnectionProxiesGet = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionProxiesGetInput,
    outputSchema: PrivateEndpointConnectionProxiesGetOutput,
}));
// Input Schema
export const PrivateEndpointConnectionProxiesListByAccountInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnectionProxies",
}));
// Output Schema
export const PrivateEndpointConnectionProxiesListByAccountOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.optional(Schema.Array(Schema.Struct({
        eTag: Schema.optional(Schema.String),
        remotePrivateEndpoint: Schema.optional(Schema.Struct({
            id: Schema.optional(Schema.String),
            location: Schema.optional(Schema.String),
            immutableSubscriptionId: Schema.optional(Schema.String),
            immutableResourceId: Schema.optional(Schema.String),
            vnetTrafficTag: Schema.optional(Schema.String),
            manualPrivateLinkServiceConnections: Schema.optional(Schema.Array(Schema.Struct({
                name: Schema.optional(Schema.String),
                groupIds: Schema.optional(Schema.Array(Schema.String)),
                requestMessage: Schema.optional(Schema.String),
            }))),
            privateLinkServiceConnections: Schema.optional(Schema.Array(Schema.Struct({
                name: Schema.optional(Schema.String),
                groupIds: Schema.optional(Schema.Array(Schema.String)),
                requestMessage: Schema.optional(Schema.String),
            }))),
            privateLinkServiceProxies: Schema.optional(Schema.Array(Schema.Struct({
                id: Schema.optional(Schema.String),
                remotePrivateLinkServiceConnectionState: Schema.optional(Schema.Struct({
                    status: Schema.optional(Schema.Literals(["Pending", "Approved", "Rejected"])),
                    description: Schema.optional(Schema.String),
                    actionsRequired: Schema.optional(Schema.String),
                })),
                remotePrivateEndpointConnection: Schema.optional(Schema.Struct({
                    id: Schema.optional(Schema.String),
                })),
                groupConnectivityInformation: Schema.optional(Schema.Array(Schema.Struct({
                    groupId: Schema.optional(Schema.String),
                    memberName: Schema.optional(Schema.String),
                    customerVisibleFqdns: Schema.optional(Schema.Array(Schema.String)),
                    internalFqdn: Schema.optional(Schema.String),
                    redirectMapId: Schema.optional(Schema.String),
                    privateLinkServiceArmRegion: Schema.optional(Schema.String),
                }))),
            }))),
            connectionDetails: Schema.optional(Schema.Array(Schema.Struct({
                id: Schema.optional(Schema.String),
                privateIpAddress: Schema.optional(Schema.String),
                linkIdentifier: Schema.optional(Schema.String),
                groupId: Schema.optional(Schema.String),
                memberName: Schema.optional(Schema.String),
            }))),
        })),
        status: Schema.optional(Schema.String),
    }))),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * (INTERNAL - DO NOT USE) List all private endpoint connection proxies in a device update account.
 */
export const PrivateEndpointConnectionProxiesListByAccount = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionProxiesListByAccountInput,
    outputSchema: PrivateEndpointConnectionProxiesListByAccountOutput,
}));
// Input Schema
export const PrivateEndpointConnectionProxiesUpdatePrivateEndpointPropertiesInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnectionProxies/{privateEndpointConnectionProxyId}/updatePrivateEndpointProperties",
}));
// Output Schema
export const PrivateEndpointConnectionProxiesUpdatePrivateEndpointPropertiesOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * (INTERNAL - DO NOT USE) Updates a private endpoint inside the private endpoint connection proxy object.
 */
export const PrivateEndpointConnectionProxiesUpdatePrivateEndpointProperties = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionProxiesUpdatePrivateEndpointPropertiesInput,
    outputSchema: PrivateEndpointConnectionProxiesUpdatePrivateEndpointPropertiesOutput,
}));
// Input Schema
export const PrivateEndpointConnectionProxiesValidateInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnectionProxies/{privateEndpointConnectionProxyId}/validate",
}));
// Output Schema
export const PrivateEndpointConnectionProxiesValidateOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * (INTERNAL - DO NOT USE) Validates a private endpoint connection proxy object.
 */
export const PrivateEndpointConnectionProxiesValidate = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionProxiesValidateInput,
    outputSchema: PrivateEndpointConnectionProxiesValidateOutput,
}));
// Input Schema
export const PrivateEndpointConnectionsCreateOrUpdateInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    privateEndpointConnectionName: Schema.String.pipe(T.PathParam()),
    properties: Schema.Struct({
        privateEndpoint: Schema.optional(Schema.Struct({
            id: Schema.optional(Schema.String),
        })),
        privateLinkServiceConnectionState: Schema.Struct({
            status: Schema.optional(Schema.Literals(["Pending", "Approved", "Rejected"])),
            description: Schema.optional(Schema.String),
            actionsRequired: Schema.optional(Schema.String),
        }),
        groupIds: Schema.optional(Schema.Array(Schema.String)),
        provisioningState: Schema.optional(Schema.Literals(["Succeeded", "Creating", "Deleting", "Failed"])),
    }),
}).pipe(T.Http({
    method: "PUT",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}",
}));
// Output Schema
export const PrivateEndpointConnectionsCreateOrUpdateOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Update the state of specified private endpoint connection associated with the device update account.
 *
 * @param privateEndpointConnectionName - The name of the private endpoint connection associated with the Azure resource
 * @param properties - Resource properties.
 */
export const PrivateEndpointConnectionsCreateOrUpdate = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionsCreateOrUpdateInput,
    outputSchema: PrivateEndpointConnectionsCreateOrUpdateOutput,
}));
// Input Schema
export const PrivateEndpointConnectionsDeleteInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    privateEndpointConnectionName: Schema.String.pipe(T.PathParam()),
}).pipe(T.Http({
    method: "DELETE",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}",
}));
// Output Schema
export const PrivateEndpointConnectionsDeleteOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Deletes the specified private endpoint connection associated with the device update account.
 *
 * @param privateEndpointConnectionName - The name of the private endpoint connection associated with the Azure resource
 */
export const PrivateEndpointConnectionsDelete = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionsDeleteInput,
    outputSchema: PrivateEndpointConnectionsDeleteOutput,
}));
// Input Schema
export const PrivateEndpointConnectionsGetInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    privateEndpointConnectionName: Schema.String.pipe(T.PathParam()),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnections/{privateEndpointConnectionName}",
}));
// Output Schema
export const PrivateEndpointConnectionsGetOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Get the specified private endpoint connection associated with the device update account.
 *
 * @param privateEndpointConnectionName - The name of the private endpoint connection associated with the Azure resource
 */
export const PrivateEndpointConnectionsGet = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionsGetInput,
    outputSchema: PrivateEndpointConnectionsGetOutput,
}));
// Input Schema
export const PrivateEndpointConnectionsListByAccountInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateEndpointConnections",
}));
// Output Schema
export const PrivateEndpointConnectionsListByAccountOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.optional(Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    }))),
});
// The operation
/**
 * List all private endpoint connections in a device update account.
 */
export const PrivateEndpointConnectionsListByAccount = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateEndpointConnectionsListByAccountInput,
    outputSchema: PrivateEndpointConnectionsListByAccountOutput,
}));
// Input Schema
export const PrivateLinkResourcesGetInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateLinkResources/{groupId}",
}));
// Output Schema
export const PrivateLinkResourcesGetOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Get the specified private link resource associated with the device update account.
 */
export const PrivateLinkResourcesGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateLinkResourcesGetInput,
    outputSchema: PrivateLinkResourcesGetOutput,
}));
// Input Schema
export const PrivateLinkResourcesListByAccountInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeviceUpdate/accounts/{accountName}/privateLinkResources",
}));
// Output Schema
export const PrivateLinkResourcesListByAccountOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.optional(Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    }))),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List all private link resources in a device update account.
 */
export const PrivateLinkResourcesListByAccount = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PrivateLinkResourcesListByAccountInput,
    outputSchema: PrivateLinkResourcesListByAccountOutput,
}));
//# sourceMappingURL=deviceupdate.js.map