apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    cert-manager.io/inject-ca-from: azureserviceoperator-system/azureserviceoperator-serving-cert
    controller-gen.kubebuilder.io/version: (devel)
  name: workspaces.operationalinsights.azure.com
spec:
  conversion:
    strategy: Webhook
    webhook:
      clientConfig:
        service:
          name: azureserviceoperator-webhook-service
          namespace: azureserviceoperator-system
          path: /convert
      conversionReviewVersions:
      - v1beta1
  group: operationalinsights.azure.com
  names:
    kind: Workspace
    listKind: WorkspaceList
    plural: workspaces
    singular: workspace
  preserveUnknownFields: false
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].severity
      name: Severity
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].message
      name: Message
      type: string
    name: v1alpha1api20210601
    schema:
      openAPIV3Schema:
        description: 'Generated from: https://schema.management.azure.com/schemas/2021-06-01/Microsoft.OperationalInsights.json#/resourceDefinitions/workspaces'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              azureName:
                description: 'AzureName: The name of the resource in Azure. This is
                  often the same as the name of the resource in Kubernetes but it
                  doesn''t have to be.'
                maxLength: 63
                minLength: 4
                pattern: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
                type: string
              eTag:
                description: 'ETag: The ETag of the workspace.'
                type: string
              features:
                description: 'Features: Workspace features.'
                properties:
                  additionalProperties:
                    additionalProperties:
                      x-kubernetes-preserve-unknown-fields: true
                    description: 'AdditionalProperties: Unmatched properties from
                      the message are deserialized this collection'
                    type: object
                  clusterResourceReference:
                    description: 'ClusterResourceReference: Dedicated LA cluster resourceId
                      that is linked to the workspaces.'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                  disableLocalAuth:
                    description: 'DisableLocalAuth: Disable Non-AAD based Auth.'
                    type: boolean
                  enableDataExport:
                    description: 'EnableDataExport: Flag that indicate if data should
                      be exported.'
                    type: boolean
                  enableLogAccessUsingOnlyResourcePermissions:
                    description: 'EnableLogAccessUsingOnlyResourcePermissions: Flag
                      that indicate which permission to use - resource or workspace
                      or both.'
                    type: boolean
                  immediatePurgeDataOn30Days:
                    description: 'ImmediatePurgeDataOn30Days: Flag that describes
                      if we want to remove the data after 30 days.'
                    type: boolean
                type: object
              forceCmkForQuery:
                description: 'ForceCmkForQuery: Indicates whether customer managed
                  storage is mandatory for query management.'
                type: boolean
              location:
                description: 'Location: The geo-location where the resource lives'
                type: string
              owner:
                description: KnownResourceReference is a resource reference to a known
                  type.
                properties:
                  name:
                    description: This is the name of the Kubernetes resource to reference.
                    type: string
                required:
                - name
                type: object
              provisioningState:
                description: 'ProvisioningState: The provisioning state of the workspace.'
                enum:
                - Canceled
                - Creating
                - Deleting
                - Failed
                - ProvisioningAccount
                - Succeeded
                - Updating
                type: string
              publicNetworkAccessForIngestion:
                description: 'PublicNetworkAccessForIngestion: The network access
                  type for accessing Log Analytics ingestion.'
                enum:
                - Disabled
                - Enabled
                type: string
              publicNetworkAccessForQuery:
                description: 'PublicNetworkAccessForQuery: The network access type
                  for accessing Log Analytics query.'
                enum:
                - Disabled
                - Enabled
                type: string
              retentionInDays:
                description: 'RetentionInDays: The workspace data retention in days.
                  Allowed values are per pricing plan. See pricing tiers documentation
                  for details.'
                type: integer
              sku:
                description: 'Sku: The SKU (tier) of a workspace.'
                properties:
                  capacityReservationLevel:
                    description: 'CapacityReservationLevel: The capacity reservation
                      level in GB for this workspace, when CapacityReservation sku
                      is selected.'
                    type: integer
                  name:
                    description: 'Name: The name of the SKU.'
                    enum:
                    - CapacityReservation
                    - Free
                    - LACluster
                    - PerGB2018
                    - PerNode
                    - Premium
                    - Standalone
                    - Standard
                    type: string
                required:
                - name
                type: object
              tags:
                additionalProperties:
                  type: string
                description: 'Tags: Name-value pairs to add to the resource'
                type: object
              workspaceCapping:
                description: 'WorkspaceCapping: The daily volume cap for ingestion.'
                properties:
                  dailyQuotaGb:
                    description: 'DailyQuotaGb: The workspace daily quota for ingestion.'
                    type: number
                type: object
            required:
            - owner
            type: object
          status:
            properties:
              conditions:
                description: 'Conditions: The observed state of the resource'
                items:
                  description: Condition defines an extension to status (an observation)
                    of a resource
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable message indicating
                        details about the transition. This field may be empty.
                      type: string
                    observedGeneration:
                      description: ObservedGeneration is the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      type: integer
                    reason:
                      description: Reason for the condition's last transition. Reasons
                        are upper CamelCase (PascalCase) with no spaces. A reason
                        is always provided, this field will not be empty.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. For conditions which have positive polarity
                        (Status == True is their normal/healthy state), this will
                        be omitted when Status == True For conditions which have negative
                        polarity (Status == False is their normal/healthy state),
                        this will be omitted when Status == False. This is omitted
                        in all cases when Status == Unknown
                      type: string
                    status:
                      description: Status of the condition, one of True, False, or
                        Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
              createdDate:
                description: 'CreatedDate: Workspace creation date.'
                type: string
              customerId:
                description: 'CustomerId: This is a read-only property. Represents
                  the ID associated with the workspace.'
                type: string
              eTag:
                description: 'ETag: The ETag of the workspace.'
                type: string
              features:
                description: 'Features: Workspace features.'
                properties:
                  clusterResourceId:
                    description: 'ClusterResourceId: Dedicated LA cluster resourceId
                      that is linked to the workspaces.'
                    type: string
                  disableLocalAuth:
                    description: 'DisableLocalAuth: Disable Non-AAD based Auth.'
                    type: boolean
                  enableDataExport:
                    description: 'EnableDataExport: Flag that indicate if data should
                      be exported.'
                    type: boolean
                  enableLogAccessUsingOnlyResourcePermissions:
                    description: 'EnableLogAccessUsingOnlyResourcePermissions: Flag
                      that indicate which permission to use - resource or workspace
                      or both.'
                    type: boolean
                  immediatePurgeDataOn30Days:
                    description: 'ImmediatePurgeDataOn30Days: Flag that describes
                      if we want to remove the data after 30 days.'
                    type: boolean
                type: object
              forceCmkForQuery:
                description: 'ForceCmkForQuery: Indicates whether customer managed
                  storage is mandatory for query management.'
                type: boolean
              id:
                description: 'Id: Fully qualified resource ID for the resource. Ex
                  - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}'
                type: string
              location:
                description: 'Location: The geo-location where the resource lives'
                type: string
              modifiedDate:
                description: 'ModifiedDate: Workspace modification date.'
                type: string
              name:
                description: 'Name: The name of the resource'
                type: string
              privateLinkScopedResources:
                description: 'PrivateLinkScopedResources: List of linked private link
                  scope resources.'
                items:
                  properties:
                    resourceId:
                      description: 'ResourceId: The full resource Id of the private
                        link scope resource.'
                      type: string
                    scopeId:
                      description: 'ScopeId: The private link scope unique Identifier.'
                      type: string
                  type: object
                type: array
              provisioningState:
                description: 'ProvisioningState: The provisioning state of the workspace.'
                type: string
              publicNetworkAccessForIngestion:
                description: 'PublicNetworkAccessForIngestion: The network access
                  type for accessing Log Analytics ingestion.'
                type: string
              publicNetworkAccessForQuery:
                description: 'PublicNetworkAccessForQuery: The network access type
                  for accessing Log Analytics query.'
                type: string
              retentionInDays:
                description: 'RetentionInDays: The workspace data retention in days.
                  Allowed values are per pricing plan. See pricing tiers documentation
                  for details.'
                type: integer
              sku:
                description: 'Sku: The SKU of the workspace.'
                properties:
                  capacityReservationLevel:
                    description: 'CapacityReservationLevel: The capacity reservation
                      level in GB for this workspace, when CapacityReservation sku
                      is selected.'
                    type: integer
                  lastSkuUpdate:
                    description: 'LastSkuUpdate: The last time when the sku was updated.'
                    type: string
                  name:
                    description: 'Name: The name of the SKU.'
                    type: string
                required:
                - name
                type: object
              tags:
                additionalProperties:
                  type: string
                description: 'Tags: Resource tags.'
                type: object
              type:
                description: 'Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines"
                  or "Microsoft.Storage/storageAccounts"'
                type: string
              workspaceCapping:
                description: 'WorkspaceCapping: The daily volume cap for ingestion.'
                properties:
                  dailyQuotaGb:
                    description: 'DailyQuotaGb: The workspace daily quota for ingestion.'
                    type: number
                  dataIngestionStatus:
                    description: 'DataIngestionStatus: The status of data ingestion
                      for this workspace.'
                    type: string
                  quotaNextResetTime:
                    description: 'QuotaNextResetTime: The time when the quota will
                      be rest.'
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - additionalPrinterColumns:
    - jsonPath: .status.conditions[?(@.type=='Ready')].status
      name: Ready
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].severity
      name: Severity
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].reason
      name: Reason
      type: string
    - jsonPath: .status.conditions[?(@.type=='Ready')].message
      name: Message
      type: string
    name: v1alpha1api20210601storage
    schema:
      openAPIV3Schema:
        description: 'Storage version of v1alpha1api20210601.Workspace Generated from:
          https://schema.management.azure.com/schemas/2021-06-01/Microsoft.OperationalInsights.json#/resourceDefinitions/workspaces'
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Storage version of v1alpha1api20210601.Workspaces_Spec
            properties:
              $propertyBag:
                additionalProperties:
                  type: string
                description: PropertyBag is an unordered set of stashed information
                  that used for properties not directly supported by storage resources,
                  allowing for full fidelity round trip conversions
                type: object
              azureName:
                description: 'AzureName: The name of the resource in Azure. This is
                  often the same as the name of the resource in Kubernetes but it
                  doesn''t have to be.'
                maxLength: 63
                minLength: 4
                pattern: ^[A-Za-z0-9][A-Za-z0-9-]+[A-Za-z0-9]$
                type: string
              eTag:
                type: string
              features:
                description: 'Storage version of v1alpha1api20210601.WorkspaceFeatures
                  Generated from: https://schema.management.azure.com/schemas/2021-06-01/Microsoft.OperationalInsights.json#/definitions/WorkspaceFeatures'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  additionalProperties:
                    additionalProperties:
                      x-kubernetes-preserve-unknown-fields: true
                    type: object
                  clusterResourceReference:
                    description: 'ClusterResourceReference: Dedicated LA cluster resourceId
                      that is linked to the workspaces.'
                    properties:
                      armId:
                        description: 'TODO: The below regex may be overly restrictive
                          ARMID is a string of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
                          The /resourcegroups/{resourceGroupName} bit is optional
                          as some resources are scoped at the subscription level ARMID
                          is mutually exclusive with Group, Kind, Namespace and Name.'
                        pattern: (?i)^/subscriptions/([^/]+)(/resourcegroups/([^/]+))?/providers/([^/]+)/([^/]+/[^/]+)(/([^/]+/[^/]+))*$
                        type: string
                      group:
                        description: Group is the Kubernetes group of the resource.
                        type: string
                      kind:
                        description: Kind is the Kubernetes kind of the resource.
                        type: string
                      name:
                        description: Name is the Kubernetes name of the resource.
                        type: string
                    type: object
                  disableLocalAuth:
                    type: boolean
                  enableDataExport:
                    type: boolean
                  enableLogAccessUsingOnlyResourcePermissions:
                    type: boolean
                  immediatePurgeDataOn30Days:
                    type: boolean
                type: object
              forceCmkForQuery:
                type: boolean
              location:
                type: string
              originalVersion:
                type: string
              owner:
                description: KnownResourceReference is a resource reference to a known
                  type.
                properties:
                  name:
                    description: This is the name of the Kubernetes resource to reference.
                    type: string
                required:
                - name
                type: object
              provisioningState:
                type: string
              publicNetworkAccessForIngestion:
                type: string
              publicNetworkAccessForQuery:
                type: string
              retentionInDays:
                type: integer
              sku:
                description: 'Storage version of v1alpha1api20210601.WorkspaceSku
                  Generated from: https://schema.management.azure.com/schemas/2021-06-01/Microsoft.OperationalInsights.json#/definitions/WorkspaceSku'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  capacityReservationLevel:
                    type: integer
                  name:
                    type: string
                type: object
              tags:
                additionalProperties:
                  type: string
                type: object
              workspaceCapping:
                description: 'Storage version of v1alpha1api20210601.WorkspaceCapping
                  Generated from: https://schema.management.azure.com/schemas/2021-06-01/Microsoft.OperationalInsights.json#/definitions/WorkspaceCapping'
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  dailyQuotaGb:
                    type: number
                type: object
            required:
            - owner
            type: object
          status:
            description: Storage version of v1alpha1api20210601.Workspace_Status
            properties:
              $propertyBag:
                additionalProperties:
                  type: string
                description: PropertyBag is an unordered set of stashed information
                  that used for properties not directly supported by storage resources,
                  allowing for full fidelity round trip conversions
                type: object
              conditions:
                items:
                  description: Condition defines an extension to status (an observation)
                    of a resource
                  properties:
                    lastTransitionTime:
                      description: LastTransitionTime is the last time the condition
                        transitioned from one status to another.
                      format: date-time
                      type: string
                    message:
                      description: Message is a human readable message indicating
                        details about the transition. This field may be empty.
                      type: string
                    observedGeneration:
                      description: ObservedGeneration is the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.condition[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      type: integer
                    reason:
                      description: Reason for the condition's last transition. Reasons
                        are upper CamelCase (PascalCase) with no spaces. A reason
                        is always provided, this field will not be empty.
                      type: string
                    severity:
                      description: Severity with which to treat failures of this type
                        of condition. For conditions which have positive polarity
                        (Status == True is their normal/healthy state), this will
                        be omitted when Status == True For conditions which have negative
                        polarity (Status == False is their normal/healthy state),
                        this will be omitted when Status == False. This is omitted
                        in all cases when Status == Unknown
                      type: string
                    status:
                      description: Status of the condition, one of True, False, or
                        Unknown.
                      type: string
                    type:
                      description: Type of condition.
                      type: string
                  required:
                  - lastTransitionTime
                  - reason
                  - status
                  - type
                  type: object
                type: array
              createdDate:
                type: string
              customerId:
                type: string
              eTag:
                type: string
              features:
                description: Storage version of v1alpha1api20210601.WorkspaceFeatures_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  clusterResourceId:
                    type: string
                  disableLocalAuth:
                    type: boolean
                  enableDataExport:
                    type: boolean
                  enableLogAccessUsingOnlyResourcePermissions:
                    type: boolean
                  immediatePurgeDataOn30Days:
                    type: boolean
                type: object
              forceCmkForQuery:
                type: boolean
              id:
                type: string
              location:
                type: string
              modifiedDate:
                type: string
              name:
                type: string
              privateLinkScopedResources:
                items:
                  description: Storage version of v1alpha1api20210601.PrivateLinkScopedResource_Status
                  properties:
                    $propertyBag:
                      additionalProperties:
                        type: string
                      description: PropertyBag is an unordered set of stashed information
                        that used for properties not directly supported by storage
                        resources, allowing for full fidelity round trip conversions
                      type: object
                    resourceId:
                      type: string
                    scopeId:
                      type: string
                  type: object
                type: array
              provisioningState:
                type: string
              publicNetworkAccessForIngestion:
                type: string
              publicNetworkAccessForQuery:
                type: string
              retentionInDays:
                type: integer
              sku:
                description: Storage version of v1alpha1api20210601.WorkspaceSku_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  capacityReservationLevel:
                    type: integer
                  lastSkuUpdate:
                    type: string
                  name:
                    type: string
                type: object
              tags:
                additionalProperties:
                  type: string
                type: object
              type:
                type: string
              workspaceCapping:
                description: Storage version of v1alpha1api20210601.WorkspaceCapping_Status
                properties:
                  $propertyBag:
                    additionalProperties:
                      type: string
                    description: PropertyBag is an unordered set of stashed information
                      that used for properties not directly supported by storage resources,
                      allowing for full fidelity round trip conversions
                    type: object
                  dailyQuotaGb:
                    type: number
                  dataIngestionStatus:
                    type: string
                  quotaNextResetTime:
                    type: string
                type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
