/**
 * Cloudflare ORGANIZATIONS API
 *
 * Generated from Cloudflare TypeScript SDK.
 * DO NOT EDIT - regenerate with: bun scripts/generate.ts --service organizations
 */
import * as Schema from "effect/Schema";
import type * as HttpClient from "effect/unstable/http/HttpClient";
import * as API from "../client/api.ts";
import type { Credentials } from "../credentials.ts";
import { type DefaultErrors } from "../errors.ts";
export interface GetBillingUsageRequest {
    organizationId: string;
}
export declare const GetBillingUsageRequest: Schema.Schema<GetBillingUsageRequest>;
export type GetBillingUsageResponse = {
    billingAccountId: string;
    billingAccountName: string;
    chargeCategory: "Usage";
    chargeDescription: string;
    chargeFrequency: "Usage-Based";
    chargePeriodEnd: string;
    chargePeriodStart: string;
    consumedQuantity: number;
    consumedUnit: string;
    hostProviderName: string;
    invoiceIssuerName: string;
    serviceProviderName: string;
    xBillableMetricName: string;
    billedCost?: number | null;
    billingCurrency?: string | null;
    billingPeriodEnd?: string | null;
    billingPeriodStart?: string | null;
    chargeClass?: "Correction" | null;
    contractedCost?: number | null;
    contractedUnitPrice?: number | null;
    effectiveCost?: number | null;
    listCost?: number | null;
    listUnitPrice?: number | null;
    pricingQuantity?: number | null;
    pricingUnit?: string | null;
    regionId?: string | null;
    regionName?: string | null;
    subAccountId?: string | null;
    subAccountName?: string | null;
    xBillableMetricId?: string | null;
    xProductFamilyName?: string | null;
    xZoneId?: string | null;
    xZoneName?: string | null;
}[];
export declare const GetBillingUsageResponse: Schema.Schema<GetBillingUsageResponse>;
export type GetBillingUsageError = DefaultErrors;
export declare const getBillingUsage: API.OperationMethod<GetBillingUsageRequest, GetBillingUsageResponse, GetBillingUsageError, Credentials | HttpClient.HttpClient>;
export interface ListLogAuditsRequest {
    organizationId: string;
    cursor?: string;
    /** Limits the returned results to logs older than the specified date. This can be a date string 2019-04-30 (interpreted in UTC) or an absolute timestamp that conforms to RFC3339. */
    before: string;
    /** Limits the returned results to logs newer than the specified date. This can be a date string 2019-04-30 (interpreted in UTC) or an absolute timestamp that conforms to RFC3339. */
    since: string;
    id?: {
        not?: string[];
    };
    actionResult?: {
        not?: ("success" | "failure" | (string & {}))[];
    };
    actionType?: {
        not?: ("create" | "delete" | "view" | "update" | (string & {}))[];
    };
    actorContext?: {
        not?: ("api_key" | "api_token" | "dash" | "oauth" | "origin_ca_key" | (string & {}))[];
    };
    actorEmail?: {
        not?: string[];
    };
    actorId?: {
        not?: string[];
    };
    actorIpAddress?: {
        not?: string[];
    };
    actorTokenId?: {
        not?: string[];
    };
    actorTokenName?: {
        not?: string[];
    };
    actorType?: {
        not?: ("cloudflare_admin" | "system" | "user" | (string & {}))[];
    };
    /** Sets sorting order. */
    direction?: "desc" | "asc" | (string & {});
    /** The number limits the objects to return. The cursor attribute may be used to iterate over the next batch of objects if there are more than the limit. */
    limit?: number;
    rawCfRayId?: {
        not?: string[];
    };
    rawMethod?: {
        not?: string[];
    };
    rawStatusCode?: {
        not?: number[];
    };
    rawUri?: {
        not?: string[];
    };
    resourceId?: {
        not?: string[];
    };
    resourceProduct?: {
        not?: string[];
    };
    resourceScope?: {
        not?: "organizations"[];
    };
    resourceType?: {
        not?: string[];
    };
}
export declare const ListLogAuditsRequest: Schema.Schema<ListLogAuditsRequest>;
export interface ListLogAuditsResponse {
    result: {
        id?: string | null;
        action?: {
            description?: string | null;
            result?: string | null;
            time?: string | null;
            type?: string | null;
        } | null;
        actor?: {
            id?: string | null;
            context?: "api_key" | "api_token" | "dash" | "oauth" | "origin_ca_key" | (string & {}) | null;
            email?: string | null;
            ipAddress?: string | null;
            tokenId?: string | null;
            tokenName?: string | null;
            type?: "cloudflare_admin" | "system" | "user" | (string & {}) | null;
        } | null;
        organization?: {
            id?: string | null;
        } | null;
        raw?: {
            cfRayId?: string | null;
            method?: string | null;
            statusCode?: number | null;
            uri?: string | null;
            userAgent?: string | null;
        } | null;
        resource?: {
            id?: string | null;
            product?: string | null;
            request?: unknown | null;
            response?: unknown | null;
            scope?: unknown | null;
            type?: string | null;
        } | null;
    }[];
    resultInfo?: {
        cursors?: {
            after?: string | null;
        } | null;
    } | null;
}
export declare const ListLogAuditsResponse: Schema.Schema<ListLogAuditsResponse>;
export type ListLogAuditsError = DefaultErrors;
export declare const listLogAudits: API.PaginatedOperationMethod<ListLogAuditsRequest, ListLogAuditsResponse, ListLogAuditsError, Credentials | HttpClient.HttpClient>;
export interface GetOrganizationRequest {
    organizationId: string;
}
export declare const GetOrganizationRequest: Schema.Schema<GetOrganizationRequest>;
export interface GetOrganizationResponse {
    id: string;
    createTime: string;
    meta: {
        flags?: {
            accountCreation: string;
            accountDeletion: string;
            accountMigration: string;
            accountMobility: string;
            subOrgCreation: string;
        } | null;
        managedBy?: string | null;
    };
    name: string;
    parent?: {
        id: string;
        name: string;
    } | null;
    profile?: {
        businessAddress: string;
        businessEmail: string;
        businessName: string;
        businessPhone: string;
        externalMetadata: string;
    } | null;
}
export declare const GetOrganizationResponse: Schema.Schema<GetOrganizationResponse>;
export type GetOrganizationError = DefaultErrors;
export declare const getOrganization: API.OperationMethod<GetOrganizationRequest, GetOrganizationResponse, GetOrganizationError, Credentials | HttpClient.HttpClient>;
export interface ListOrganizationsRequest {
}
export declare const ListOrganizationsRequest: Schema.Schema<ListOrganizationsRequest>;
export interface ListOrganizationsResponse {
    result: {
        id: string;
        createTime: string;
        meta: {
            flags?: {
                accountCreation: string;
                accountDeletion: string;
                accountMigration: string;
                accountMobility: string;
                subOrgCreation: string;
            } | null;
            managedBy?: string | null;
        };
        name: string;
        parent?: {
            id: string;
            name: string;
        } | null;
        profile?: {
            businessAddress: string;
            businessEmail: string;
            businessName: string;
            businessPhone: string;
            externalMetadata: string;
        } | null;
    }[];
}
export declare const ListOrganizationsResponse: Schema.Schema<ListOrganizationsResponse>;
export type ListOrganizationsError = DefaultErrors;
export declare const listOrganizations: API.PaginatedOperationMethod<ListOrganizationsRequest, ListOrganizationsResponse, ListOrganizationsError, Credentials | HttpClient.HttpClient>;
export interface CreateOrganizationRequest {
    name: string;
    parent?: {
        id: string;
    };
    profile?: {
        businessAddress: string;
        businessEmail: string;
        businessName: string;
        businessPhone: string;
        externalMetadata: string;
    };
}
export declare const CreateOrganizationRequest: Schema.Schema<CreateOrganizationRequest>;
export interface CreateOrganizationResponse {
    id: string;
    createTime: string;
    meta: {
        flags?: {
            accountCreation: string;
            accountDeletion: string;
            accountMigration: string;
            accountMobility: string;
            subOrgCreation: string;
        } | null;
        managedBy?: string | null;
    };
    name: string;
    parent?: {
        id: string;
        name: string;
    } | null;
    profile?: {
        businessAddress: string;
        businessEmail: string;
        businessName: string;
        businessPhone: string;
        externalMetadata: string;
    } | null;
}
export declare const CreateOrganizationResponse: Schema.Schema<CreateOrganizationResponse>;
export type CreateOrganizationError = DefaultErrors;
export declare const createOrganization: API.OperationMethod<CreateOrganizationRequest, CreateOrganizationResponse, CreateOrganizationError, Credentials | HttpClient.HttpClient>;
export interface UpdateOrganizationRequest {
    organizationId: string;
    name: string;
    parent?: {
        id: string;
    };
    profile?: {
        businessAddress: string;
        businessEmail: string;
        businessName: string;
        businessPhone: string;
        externalMetadata: string;
    };
}
export declare const UpdateOrganizationRequest: Schema.Schema<UpdateOrganizationRequest>;
export interface UpdateOrganizationResponse {
    id: string;
    createTime: string;
    meta: {
        flags?: {
            accountCreation: string;
            accountDeletion: string;
            accountMigration: string;
            accountMobility: string;
            subOrgCreation: string;
        } | null;
        managedBy?: string | null;
    };
    name: string;
    parent?: {
        id: string;
        name: string;
    } | null;
    profile?: {
        businessAddress: string;
        businessEmail: string;
        businessName: string;
        businessPhone: string;
        externalMetadata: string;
    } | null;
}
export declare const UpdateOrganizationResponse: Schema.Schema<UpdateOrganizationResponse>;
export type UpdateOrganizationError = DefaultErrors;
export declare const updateOrganization: API.OperationMethod<UpdateOrganizationRequest, UpdateOrganizationResponse, UpdateOrganizationError, Credentials | HttpClient.HttpClient>;
export interface DeleteOrganizationRequest {
    organizationId: string;
}
export declare const DeleteOrganizationRequest: Schema.Schema<DeleteOrganizationRequest>;
export interface DeleteOrganizationResponse {
    id: string;
}
export declare const DeleteOrganizationResponse: Schema.Schema<DeleteOrganizationResponse>;
export type DeleteOrganizationError = DefaultErrors;
export declare const deleteOrganization: API.OperationMethod<DeleteOrganizationRequest, DeleteOrganizationResponse, DeleteOrganizationError, Credentials | HttpClient.HttpClient>;
export interface GetOrganizationProfileRequest {
    organizationId: string;
}
export declare const GetOrganizationProfileRequest: Schema.Schema<GetOrganizationProfileRequest>;
export interface GetOrganizationProfileResponse {
    businessAddress: string;
    businessEmail: string;
    businessName: string;
    businessPhone: string;
    externalMetadata: string;
}
export declare const GetOrganizationProfileResponse: Schema.Schema<GetOrganizationProfileResponse>;
export type GetOrganizationProfileError = DefaultErrors;
export declare const getOrganizationProfile: API.OperationMethod<GetOrganizationProfileRequest, GetOrganizationProfileResponse, GetOrganizationProfileError, Credentials | HttpClient.HttpClient>;
export interface PutOrganizationProfileRequest {
    organizationId: string;
    businessAddress: string;
    businessEmail: string;
    businessName: string;
    businessPhone: string;
    externalMetadata: string;
}
export declare const PutOrganizationProfileRequest: Schema.Schema<PutOrganizationProfileRequest>;
export type PutOrganizationProfileResponse = unknown;
export declare const PutOrganizationProfileResponse: Schema.Schema<PutOrganizationProfileResponse>;
export type PutOrganizationProfileError = DefaultErrors;
export declare const putOrganizationProfile: API.OperationMethod<PutOrganizationProfileRequest, PutOrganizationProfileResponse, PutOrganizationProfileError, Credentials | HttpClient.HttpClient>;
//# sourceMappingURL=organizations.d.ts.map