...

Text file src/kubevirt.io/api/apitesting/testdata/release-1.1/kubevirt.io.v1.VirtualMachine.yaml

Documentation: kubevirt.io/api/apitesting/testdata/release-1.1

     1apiVersion: kubevirt.io/v1
     2kind: VirtualMachine
     3metadata:
     4  annotations:
     5    annotationsKey: annotationsValue
     6  creationTimestamp: "2008-01-01T01:01:01Z"
     7  deletionGracePeriodSeconds: 10
     8  deletionTimestamp: "2009-01-01T01:01:01Z"
     9  finalizers:
    10  - finalizersValue
    11  generateName: generateNameValue
    12  generation: 7
    13  labels:
    14    labelsKey: labelsValue
    15  managedFields:
    16  - apiVersion: apiVersionValue
    17    fieldsType: fieldsTypeValue
    18    fieldsV1: {}
    19    manager: managerValue
    20    operation: operationValue
    21    subresource: subresourceValue
    22    time: "2004-01-01T01:01:01Z"
    23  name: nameValue
    24  namespace: namespaceValue
    25  ownerReferences:
    26  - apiVersion: apiVersionValue
    27    blockOwnerDeletion: true
    28    controller: true
    29    kind: kindValue
    30    name: nameValue
    31    uid: uidValue
    32  resourceVersion: resourceVersionValue
    33  selfLink: selfLinkValue
    34  uid: uidValue
    35spec:
    36  dataVolumeTemplates:
    37  - metadata:
    38      annotations:
    39        annotationsKey: annotationsValue
    40      creationTimestamp: "2008-01-01T01:01:01Z"
    41      deletionGracePeriodSeconds: 10
    42      deletionTimestamp: "2009-01-01T01:01:01Z"
    43      finalizers:
    44      - finalizersValue
    45      generateName: generateNameValue
    46      generation: 7
    47      labels:
    48        labelsKey: labelsValue
    49      managedFields:
    50      - apiVersion: apiVersionValue
    51        fieldsType: fieldsTypeValue
    52        fieldsV1: {}
    53        manager: managerValue
    54        operation: operationValue
    55        subresource: subresourceValue
    56        time: "2004-01-01T01:01:01Z"
    57      name: nameValue
    58      namespace: namespaceValue
    59      ownerReferences:
    60      - apiVersion: apiVersionValue
    61        blockOwnerDeletion: true
    62        controller: true
    63        kind: kindValue
    64        name: nameValue
    65        uid: uidValue
    66      resourceVersion: resourceVersionValue
    67      selfLink: selfLinkValue
    68      uid: uidValue
    69    spec:
    70      checkpoints:
    71      - current: currentValue
    72        previous: previousValue
    73      contentType: contentTypeValue
    74      finalCheckpoint: true
    75      preallocation: true
    76      priorityClassName: priorityClassNameValue
    77      pvc:
    78        accessModes:
    79        - accessModesValue
    80        dataSource:
    81          apiGroup: apiGroupValue
    82          kind: kindValue
    83          name: nameValue
    84        dataSourceRef:
    85          apiGroup: apiGroupValue
    86          kind: kindValue
    87          name: nameValue
    88          namespace: namespaceValue
    89        resources:
    90          limits:
    91            limitsKey: "0"
    92          requests:
    93            requestsKey: "0"
    94        selector:
    95          matchExpressions:
    96          - key: keyValue
    97            operator: operatorValue
    98            values:
    99            - valuesValue
   100          matchLabels:
   101            matchLabelsKey: matchLabelsValue
   102        storageClassName: storageClassNameValue
   103        volumeMode: volumeModeValue
   104        volumeName: volumeNameValue
   105      source:
   106        blank: {}
   107        gcs:
   108          secretRef: secretRefValue
   109          url: urlValue
   110        http:
   111          certConfigMap: certConfigMapValue
   112          extraHeaders:
   113          - extraHeadersValue
   114          secretExtraHeaders:
   115          - secretExtraHeadersValue
   116          secretRef: secretRefValue
   117          url: urlValue
   118        imageio:
   119          certConfigMap: certConfigMapValue
   120          diskId: diskIdValue
   121          secretRef: secretRefValue
   122          url: urlValue
   123        pvc:
   124          name: nameValue
   125          namespace: namespaceValue
   126        registry:
   127          certConfigMap: certConfigMapValue
   128          imageStream: imageStreamValue
   129          pullMethod: pullMethodValue
   130          secretRef: secretRefValue
   131          url: urlValue
   132        s3:
   133          certConfigMap: certConfigMapValue
   134          secretRef: secretRefValue
   135          url: urlValue
   136        snapshot:
   137          name: nameValue
   138          namespace: namespaceValue
   139        upload: {}
   140        vddk:
   141          backingFile: backingFileValue
   142          initImageURL: initImageURLValue
   143          secretRef: secretRefValue
   144          thumbprint: thumbprintValue
   145          url: urlValue
   146          uuid: uuidValue
   147      sourceRef:
   148        kind: kindValue
   149        name: nameValue
   150        namespace: namespaceValue
   151      storage:
   152        accessModes:
   153        - accessModesValue
   154        dataSource:
   155          apiGroup: apiGroupValue
   156          kind: kindValue
   157          name: nameValue
   158        dataSourceRef:
   159          apiGroup: apiGroupValue
   160          kind: kindValue
   161          name: nameValue
   162          namespace: namespaceValue
   163        resources:
   164          claims:
   165          - name: nameValue
   166          limits:
   167            limitsKey: "0"
   168          requests:
   169            requestsKey: "0"
   170        selector:
   171          matchExpressions:
   172          - key: keyValue
   173            operator: operatorValue
   174            values:
   175            - valuesValue
   176          matchLabels:
   177            matchLabelsKey: matchLabelsValue
   178        storageClassName: storageClassNameValue
   179        volumeMode: volumeModeValue
   180        volumeName: volumeNameValue
   181    status: {}
   182  instancetype:
   183    inferFromVolume: inferFromVolumeValue
   184    inferFromVolumeFailurePolicy: inferFromVolumeFailurePolicyValue
   185    kind: kindValue
   186    name: nameValue
   187    revisionName: revisionNameValue
   188  preference:
   189    inferFromVolume: inferFromVolumeValue
   190    inferFromVolumeFailurePolicy: inferFromVolumeFailurePolicyValue
   191    kind: kindValue
   192    name: nameValue
   193    revisionName: revisionNameValue
   194  runStrategy: runStrategyValue
   195  running: true
   196  template:
   197    metadata:
   198      annotations:
   199        annotationsKey: annotationsValue
   200      creationTimestamp: "2008-01-01T01:01:01Z"
   201      deletionGracePeriodSeconds: 10
   202      deletionTimestamp: "2009-01-01T01:01:01Z"
   203      finalizers:
   204      - finalizersValue
   205      generateName: generateNameValue
   206      generation: 7
   207      labels:
   208        labelsKey: labelsValue
   209      managedFields:
   210      - apiVersion: apiVersionValue
   211        fieldsType: fieldsTypeValue
   212        fieldsV1: {}
   213        manager: managerValue
   214        operation: operationValue
   215        subresource: subresourceValue
   216        time: "2004-01-01T01:01:01Z"
   217      name: nameValue
   218      namespace: namespaceValue
   219      ownerReferences:
   220      - apiVersion: apiVersionValue
   221        blockOwnerDeletion: true
   222        controller: true
   223        kind: kindValue
   224        name: nameValue
   225        uid: uidValue
   226      resourceVersion: resourceVersionValue
   227      selfLink: selfLinkValue
   228      uid: uidValue
   229    spec:
   230      accessCredentials:
   231      - sshPublicKey:
   232          propagationMethod:
   233            configDrive: {}
   234            noCloud: {}
   235            qemuGuestAgent:
   236              users:
   237              - usersValue
   238          source:
   239            secret:
   240              secretName: secretNameValue
   241        userPassword:
   242          propagationMethod:
   243            qemuGuestAgent: {}
   244          source:
   245            secret:
   246              secretName: secretNameValue
   247      affinity:
   248        nodeAffinity:
   249          preferredDuringSchedulingIgnoredDuringExecution:
   250          - preference:
   251              matchExpressions:
   252              - key: keyValue
   253                operator: operatorValue
   254                values:
   255                - valuesValue
   256              matchFields:
   257              - key: keyValue
   258                operator: operatorValue
   259                values:
   260                - valuesValue
   261            weight: 1
   262          requiredDuringSchedulingIgnoredDuringExecution:
   263            nodeSelectorTerms:
   264            - matchExpressions:
   265              - key: keyValue
   266                operator: operatorValue
   267                values:
   268                - valuesValue
   269              matchFields:
   270              - key: keyValue
   271                operator: operatorValue
   272                values:
   273                - valuesValue
   274        podAffinity:
   275          preferredDuringSchedulingIgnoredDuringExecution:
   276          - podAffinityTerm:
   277              labelSelector:
   278                matchExpressions:
   279                - key: keyValue
   280                  operator: operatorValue
   281                  values:
   282                  - valuesValue
   283                matchLabels:
   284                  matchLabelsKey: matchLabelsValue
   285              namespaceSelector:
   286                matchExpressions:
   287                - key: keyValue
   288                  operator: operatorValue
   289                  values:
   290                  - valuesValue
   291                matchLabels:
   292                  matchLabelsKey: matchLabelsValue
   293              namespaces:
   294              - namespacesValue
   295              topologyKey: topologyKeyValue
   296            weight: 1
   297          requiredDuringSchedulingIgnoredDuringExecution:
   298          - labelSelector:
   299              matchExpressions:
   300              - key: keyValue
   301                operator: operatorValue
   302                values:
   303                - valuesValue
   304              matchLabels:
   305                matchLabelsKey: matchLabelsValue
   306            namespaceSelector:
   307              matchExpressions:
   308              - key: keyValue
   309                operator: operatorValue
   310                values:
   311                - valuesValue
   312              matchLabels:
   313                matchLabelsKey: matchLabelsValue
   314            namespaces:
   315            - namespacesValue
   316            topologyKey: topologyKeyValue
   317        podAntiAffinity:
   318          preferredDuringSchedulingIgnoredDuringExecution:
   319          - podAffinityTerm:
   320              labelSelector:
   321                matchExpressions:
   322                - key: keyValue
   323                  operator: operatorValue
   324                  values:
   325                  - valuesValue
   326                matchLabels:
   327                  matchLabelsKey: matchLabelsValue
   328              namespaceSelector:
   329                matchExpressions:
   330                - key: keyValue
   331                  operator: operatorValue
   332                  values:
   333                  - valuesValue
   334                matchLabels:
   335                  matchLabelsKey: matchLabelsValue
   336              namespaces:
   337              - namespacesValue
   338              topologyKey: topologyKeyValue
   339            weight: 1
   340          requiredDuringSchedulingIgnoredDuringExecution:
   341          - labelSelector:
   342              matchExpressions:
   343              - key: keyValue
   344                operator: operatorValue
   345                values:
   346                - valuesValue
   347              matchLabels:
   348                matchLabelsKey: matchLabelsValue
   349            namespaceSelector:
   350              matchExpressions:
   351              - key: keyValue
   352                operator: operatorValue
   353                values:
   354                - valuesValue
   355              matchLabels:
   356                matchLabelsKey: matchLabelsValue
   357            namespaces:
   358            - namespacesValue
   359            topologyKey: topologyKeyValue
   360      architecture: architectureValue
   361      dnsConfig:
   362        nameservers:
   363        - nameserversValue
   364        options:
   365        - name: nameValue
   366          value: valueValue
   367        searches:
   368        - searchesValue
   369      dnsPolicy: dnsPolicyValue
   370      domain:
   371        chassis:
   372          asset: assetValue
   373          manufacturer: manufacturerValue
   374          serial: serialValue
   375          sku: skuValue
   376          version: versionValue
   377        clock:
   378          timer:
   379            hpet:
   380              present: true
   381              tickPolicy: tickPolicyValue
   382            hyperv:
   383              present: true
   384            kvm:
   385              present: true
   386            pit:
   387              present: true
   388              tickPolicy: tickPolicyValue
   389            rtc:
   390              present: true
   391              tickPolicy: tickPolicyValue
   392              track: trackValue
   393          timezone: timezoneValue
   394          utc:
   395            offsetSeconds: -13
   396        cpu:
   397          cores: 4294967291
   398          dedicatedCpuPlacement: true
   399          features:
   400          - name: nameValue
   401            policy: policyValue
   402          isolateEmulatorThread: true
   403          maxSockets: 4294967286
   404          model: modelValue
   405          numa:
   406            guestMappingPassthrough: {}
   407          realtime:
   408            mask: maskValue
   409          sockets: 4294967289
   410          threads: 4294967289
   411        devices:
   412          autoattachGraphicsDevice: true
   413          autoattachInputDevice: true
   414          autoattachMemBalloon: true
   415          autoattachPodInterface: true
   416          autoattachSerialConsole: true
   417          autoattachVSOCK: true
   418          blockMultiQueue: true
   419          clientPassthrough: {}
   420          disableHotplug: true
   421          disks:
   422          - blockSize:
   423              custom:
   424                logical: 18446744073709551609
   425                physical: 18446744073709551608
   426              matchVolume:
   427                enabled: true
   428            bootOrder: 18446744073709551607
   429            cache: cacheValue
   430            cdrom:
   431              bus: busValue
   432              readonly: true
   433              tray: trayValue
   434            dedicatedIOThread: true
   435            disk:
   436              bus: busValue
   437              pciAddress: pciAddressValue
   438              readonly: true
   439            errorPolicy: errorPolicyValue
   440            io: ioValue
   441            lun:
   442              bus: busValue
   443              readonly: true
   444              reservation: true
   445            name: nameValue
   446            serial: serialValue
   447            shareable: true
   448            tag: tagValue
   449          downwardMetrics: {}
   450          filesystems:
   451          - name: nameValue
   452            virtiofs: {}
   453          gpus:
   454          - deviceName: deviceNameValue
   455            name: nameValue
   456            tag: tagValue
   457            virtualGPUOptions:
   458              display:
   459                enabled: true
   460                ramFB:
   461                  enabled: true
   462          hostDevices:
   463          - deviceName: deviceNameValue
   464            name: nameValue
   465            tag: tagValue
   466          inputs:
   467          - bus: busValue
   468            name: nameValue
   469            type: typeValue
   470          interfaces:
   471          - acpiIndex: -9
   472            binding:
   473              name: nameValue
   474            bootOrder: 18446744073709551607
   475            bridge: {}
   476            dhcpOptions:
   477              bootFileName: bootFileNameValue
   478              ntpServers:
   479              - ntpServersValue
   480              privateOptions:
   481              - option: -6
   482                value: valueValue
   483              tftpServerName: tftpServerNameValue
   484            macAddress: macAddressValue
   485            macvtap: {}
   486            masquerade: {}
   487            model: modelValue
   488            name: nameValue
   489            passt: {}
   490            pciAddress: pciAddressValue
   491            ports:
   492            - name: nameValue
   493              port: -4
   494              protocol: protocolValue
   495            slirp: {}
   496            sriov: {}
   497            state: stateValue
   498            tag: tagValue
   499          logSerialConsole: true
   500          networkInterfaceMultiqueue: true
   501          rng: {}
   502          sound:
   503            model: modelValue
   504            name: nameValue
   505          tpm:
   506            persistent: true
   507          useVirtioTransitional: true
   508          watchdog:
   509            i6300esb:
   510              action: actionValue
   511            name: nameValue
   512        features:
   513          acpi:
   514            enabled: true
   515          apic:
   516            enabled: true
   517            endOfInterrupt: true
   518          hyperv:
   519            evmcs:
   520              enabled: true
   521            frequencies:
   522              enabled: true
   523            ipi:
   524              enabled: true
   525            reenlightenment:
   526              enabled: true
   527            relaxed:
   528              enabled: true
   529            reset:
   530              enabled: true
   531            runtime:
   532              enabled: true
   533            spinlocks:
   534              enabled: true
   535              spinlocks: 4294967287
   536            synic:
   537              enabled: true
   538            synictimer:
   539              direct:
   540                enabled: true
   541              enabled: true
   542            tlbflush:
   543              enabled: true
   544            vapic:
   545              enabled: true
   546            vendorid:
   547              enabled: true
   548              vendorid: vendoridValue
   549            vpindex:
   550              enabled: true
   551          hypervPassthrough:
   552            enabled: true
   553          kvm:
   554            hidden: true
   555          pvspinlock:
   556            enabled: true
   557          smm:
   558            enabled: true
   559        firmware:
   560          acpi:
   561            slicNameRef: slicNameRefValue
   562          bootloader:
   563            bios:
   564              useSerial: true
   565            efi:
   566              persistent: true
   567              secureBoot: true
   568          kernelBoot:
   569            container:
   570              image: imageValue
   571              imagePullPolicy: imagePullPolicyValue
   572              imagePullSecret: imagePullSecretValue
   573              initrdPath: initrdPathValue
   574              kernelPath: kernelPathValue
   575            kernelArgs: kernelArgsValue
   576          serial: serialValue
   577          uuid: uuidValue
   578        ioThreadsPolicy: ioThreadsPolicyValue
   579        launchSecurity:
   580          sev:
   581            attestation: {}
   582            dhCert: dhCertValue
   583            policy:
   584              encryptedState: true
   585            session: sessionValue
   586        machine:
   587          type: typeValue
   588        memory:
   589          guest: "0"
   590          hugepages:
   591            pageSize: pageSizeValue
   592          maxGuest: "0"
   593        resources:
   594          limits:
   595            limitsKey: "0"
   596          overcommitGuestOverhead: true
   597          requests:
   598            requestsKey: "0"
   599      evictionStrategy: evictionStrategyValue
   600      hostname: hostnameValue
   601      livenessProbe:
   602        exec:
   603          command:
   604          - commandValue
   605        failureThreshold: -16
   606        guestAgentPing: {}
   607        httpGet:
   608          host: hostValue
   609          httpHeaders:
   610          - name: nameValue
   611            value: valueValue
   612          path: pathValue
   613          port: portValue
   614          scheme: schemeValue
   615        initialDelaySeconds: -19
   616        periodSeconds: -13
   617        successThreshold: -16
   618        tcpSocket:
   619          host: hostValue
   620          port: portValue
   621        timeoutSeconds: -14
   622      networks:
   623      - multus:
   624          default: true
   625          networkName: networkNameValue
   626        name: nameValue
   627        pod:
   628          vmIPv6NetworkCIDR: vmIPv6NetworkCIDRValue
   629          vmNetworkCIDR: vmNetworkCIDRValue
   630      nodeSelector:
   631        nodeSelectorKey: nodeSelectorValue
   632      priorityClassName: priorityClassNameValue
   633      readinessProbe:
   634        exec:
   635          command:
   636          - commandValue
   637        failureThreshold: -16
   638        guestAgentPing: {}
   639        httpGet:
   640          host: hostValue
   641          httpHeaders:
   642          - name: nameValue
   643            value: valueValue
   644          path: pathValue
   645          port: portValue
   646          scheme: schemeValue
   647        initialDelaySeconds: -19
   648        periodSeconds: -13
   649        successThreshold: -16
   650        tcpSocket:
   651          host: hostValue
   652          port: portValue
   653        timeoutSeconds: -14
   654      schedulerName: schedulerNameValue
   655      startStrategy: startStrategyValue
   656      subdomain: subdomainValue
   657      terminationGracePeriodSeconds: -29
   658      tolerations:
   659      - effect: effectValue
   660        key: keyValue
   661        operator: operatorValue
   662        tolerationSeconds: 5
   663        value: valueValue
   664      topologySpreadConstraints:
   665      - labelSelector:
   666          matchExpressions:
   667          - key: keyValue
   668            operator: operatorValue
   669            values:
   670            - valuesValue
   671          matchLabels:
   672            matchLabelsKey: matchLabelsValue
   673        matchLabelKeys:
   674        - matchLabelKeysValue
   675        maxSkew: 1
   676        minDomains: 5
   677        nodeAffinityPolicy: nodeAffinityPolicyValue
   678        nodeTaintsPolicy: nodeTaintsPolicyValue
   679        topologyKey: topologyKeyValue
   680        whenUnsatisfiable: whenUnsatisfiableValue
   681      volumes:
   682      - cloudInitConfigDrive:
   683          networkData: networkDataValue
   684          networkDataBase64: networkDataBase64Value
   685          networkDataSecretRef:
   686            name: nameValue
   687          secretRef:
   688            name: nameValue
   689          userData: userDataValue
   690          userDataBase64: userDataBase64Value
   691        cloudInitNoCloud:
   692          networkData: networkDataValue
   693          networkDataBase64: networkDataBase64Value
   694          networkDataSecretRef:
   695            name: nameValue
   696          secretRef:
   697            name: nameValue
   698          userData: userDataValue
   699          userDataBase64: userDataBase64Value
   700        configMap:
   701          name: nameValue
   702          optional: true
   703          volumeLabel: volumeLabelValue
   704        containerDisk:
   705          image: imageValue
   706          imagePullPolicy: imagePullPolicyValue
   707          imagePullSecret: imagePullSecretValue
   708          path: pathValue
   709        dataVolume:
   710          hotpluggable: true
   711          name: nameValue
   712        downwardAPI:
   713          fields:
   714          - fieldRef:
   715              apiVersion: apiVersionValue
   716              fieldPath: fieldPathValue
   717            mode: 4
   718            path: pathValue
   719            resourceFieldRef:
   720              containerName: containerNameValue
   721              divisor: "0"
   722              resource: resourceValue
   723          volumeLabel: volumeLabelValue
   724        downwardMetrics: {}
   725        emptyDisk:
   726          capacity: "0"
   727        ephemeral:
   728          persistentVolumeClaim:
   729            claimName: claimNameValue
   730            readOnly: true
   731        hostDisk:
   732          capacity: "0"
   733          path: pathValue
   734          shared: true
   735          type: typeValue
   736        memoryDump:
   737          claimName: claimNameValue
   738          hotpluggable: true
   739          readOnly: true
   740        name: nameValue
   741        persistentVolumeClaim:
   742          claimName: claimNameValue
   743          hotpluggable: true
   744          readOnly: true
   745        secret:
   746          optional: true
   747          secretName: secretNameValue
   748          volumeLabel: volumeLabelValue
   749        serviceAccount:
   750          serviceAccountName: serviceAccountNameValue
   751        sysprep:
   752          configMap:
   753            name: nameValue
   754          secret:
   755            name: nameValue
   756status:
   757  conditions:
   758  - lastProbeTime: "1987-01-01T01:01:01Z"
   759    lastTransitionTime: "1982-01-01T01:01:01Z"
   760    message: messageValue
   761    reason: reasonValue
   762    status: statusValue
   763    type: typeValue
   764  created: true
   765  desiredGeneration: -17
   766  memoryDumpRequest:
   767    claimName: claimNameValue
   768    endTimestamp: "1988-01-01T01:01:01Z"
   769    fileName: fileNameValue
   770    message: messageValue
   771    phase: phaseValue
   772    remove: true
   773    startTimestamp: "1986-01-01T01:01:01Z"
   774  observedGeneration: -18
   775  printableStatus: printableStatusValue
   776  ready: true
   777  restoreInProgress: restoreInProgressValue
   778  snapshotInProgress: snapshotInProgressValue
   779  startFailure:
   780    consecutiveFailCount: -20
   781    lastFailedVMIUID: lastFailedVMIUIDValue
   782    retryAfterTimestamp: "1981-01-01T01:01:01Z"
   783  stateChangeRequests:
   784  - action: actionValue
   785    data:
   786      dataKey: dataValue
   787    uid: uidValue
   788  volumeRequests:
   789  - addVolumeOptions:
   790      disk:
   791        blockSize:
   792          custom:
   793            logical: 18446744073709551609
   794            physical: 18446744073709551608
   795          matchVolume:
   796            enabled: true
   797        bootOrder: 18446744073709551607
   798        cache: cacheValue
   799        cdrom:
   800          bus: busValue
   801          readonly: true
   802          tray: trayValue
   803        dedicatedIOThread: true
   804        disk:
   805          bus: busValue
   806          pciAddress: pciAddressValue
   807          readonly: true
   808        errorPolicy: errorPolicyValue
   809        io: ioValue
   810        lun:
   811          bus: busValue
   812          readonly: true
   813          reservation: true
   814        name: nameValue
   815        serial: serialValue
   816        shareable: true
   817        tag: tagValue
   818      dryRun:
   819      - dryRunValue
   820      name: nameValue
   821      volumeSource:
   822        dataVolume:
   823          hotpluggable: true
   824          name: nameValue
   825        persistentVolumeClaim:
   826          claimName: claimNameValue
   827          hotpluggable: true
   828          readOnly: true
   829    removeVolumeOptions:
   830      dryRun:
   831      - dryRunValue
   832      name: nameValue
   833  volumeSnapshotStatuses:
   834  - enabled: true
   835    name: nameValue
   836    reason: reasonValue

View as plain text